更新到Xamarin.Forms 3.1之后。和Prism.Forms 7.1.0.279-pre,我的NUnit项目似乎找不到INavigationService。
那个蜜蜂说;我可以创建INavigationService
的模拟对象,但是尝试将其注入到ViewModel时会失败。
“引用类型'INavigationService'的声明是在 'Prism',但找不到”。
因此,我们无法在视图模型上运行任何测试。
PCL和NUnit项目正在使用相同版本的.Net,XF和Prism。 我还尝试了不同的版本,包括pre和stable。
有人可以在这里指出我正确的方向吗? 在我们更新解决方案之前,NUnit项目工作得很好。
答案 0 :(得分:3)
可能有点晚了,但是我遇到了同样的问题。我发现我的测试项目.csproj文件引用了Prism Core的“ net45”版本,而所有其他Prism软件包都引用了“ netstandard2.0”版本。手动编辑并将“ net45”更改为“ netstandard2.0”后,一切正常。
答案 1 :(得分:0)
根据上述建议,我不得不将单元测试csproj文件中的Prism.Core软件包引用更改为从net45指向netstandard 2.0
从此:
<HintPath>..\packages\Prism.Core.7.1.0.431\lib\net45\Prism.dll</HintPath>
对此:
<HintPath>..\packages\Prism.Core.7.1.0.431\lib\netstandard2.0\Prism.dll</HintPath>
我的单元测试项目是.NET Framework 4.7.1 NUnit项目