Reading an asset in a Xamarin NUnit test class

2019-08-23 04:01发布

I want to read a mock RSS feed file to test against in a Xamarin NUnit test for an Android app. The test class has no context so I can't put the file in the Assets folder and do this:

System.IO.Stream strIn = instanceOfAssetManager.Open(feedFile);

It also has no ancestor, so I can't do this:

System.IO.Stream strIn = this.Class.ClassLoader.ResourceAsStream(feedFile);

Any suggestions how I can get to the jolly thing?

This case solved a similar problem for a different platform/setup: Storing test files in the test project

2条回答
乱世女痞
2楼-- · 2019-08-23 04:43

The test class has no context so I can't put the file in the Assets folder and do this:

Is there a reason you need to use Android Assets? Using .NET Embedded Resources by setting the file's Build action to EmbeddedResource permits greater portability -- it's present on all .NET platforms -- and neatly sidesteps the Android Context issue.

If you need to use Android Assets, then you can use the Android.App.Application.Context property, which is equivalent to the Context.ApplicationContext property, except static and available everywhere.

查看更多
啃猪蹄的小仙女
3楼-- · 2019-08-23 04:55

Check properties of the file. I had to set "Build Action" to AndroidAsset and than you can use instanceOfAssetManager.Open(feedFile);

查看更多
登录 后发表回答