在Xamarin NUnit测试类中读取资产

Jan*_*sen 0 nunit xamarin.android android-testing

我想阅读一个模拟的RSS提要文件,以便在Android应用的Xamarin NUnit测试中进行测试.测试类没有上下文,所以我不能将文件放在Assets文件夹中并执行此操作:

System.IO.Stream strIn = instanceOfAssetManager.Open(feedFile);
Run Code Online (Sandbox Code Playgroud)

它也没有祖先,所以我不能这样做:

System.IO.Stream strIn = this.Class.ClassLoader.ResourceAsStream(feedFile);
Run Code Online (Sandbox Code Playgroud)

有什么建议我怎么可以到达快乐的事情?

这个案例解决了不同平台/设置的类似问题: 在测试项目中存储测试文件

jon*_*onp 5

测试类没有上下文,所以我不能将文件放在Assets文件夹中并执行此操作:

您需要使用Android资产吗?使用.NET嵌入资源由文件的设置生成操作EmbeddedResource更高的可移植性 - 它存在于所有.NET平台上 - 并且巧妙地避开了Android Context问题.

如果您需要使用Android资源,那么您可以使用Android.App.Application.Context属性,该属性等同于Context.ApplicationContext属性,除静态和可用之外.