我有一个新的 Xamarin Forms (3.2) 项目,使用 .NetStandard 库 (2.0.3) 和 Prism/Unity 进行导航和依赖注入。我一直在努力设置基本的单元测试。
我的单元测试项目有一个单元测试类,它试图测试 ViewModel 类 (LoginPageViewModel) 中的方法。ViewModel 类继承自 ViewModelBase,后者继承自 Prism 的 BindableBase 并实现 Prism 的 INavigationAware 接口。
public class ViewModelBase : BindableBase, INavigationAware, IDestructible
我有两个构造函数。我为单元测试创建的第二个,因为我不需要 INavigationService 进行测试。
public LoginPageViewModel(INavigationService navigationService, IdentityService identityService) : base(navigationService)
public LoginPageViewModel(IIdentityService identityService) : base()
该项目已构建,但我的每个测试都会出现此异常:
消息:测试方法 SalesOrderApp.UnitTests.LoginPageViewModelTests.UserLogin_LoginFails_ReturnsFalseAndNoToken 抛出异常:System.TypeLoadException:无法从程序集“Prism,Version=7.1.0.431,Culture=neutral,PublicKeyToken=429ee6c35dc”加载类型“Prism.Navigation.INavigationAware”
我在 MSTest 项目中安装的 Prism.Unity.Forms (7.1.0.431) 版本与我正在测试的项目中安装的版本相同。我一直在努力让 MSTests 与 Prism 一起工作。任何帮助将不胜感激。
没有复制,我只能在这里做假设。基于异常,它似乎无法解析导航接口。这告诉我您的单元测试项目针对的是完整的 .Net Framework (net45),这是唯一会导致该异常的场景。
如果你使用 Xamarin,你可以将你的单元测试重新定位到我推荐的设备运行器,或者只是 netcore。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句