Lie*_*iel 2 unit-testing mvvmcross xamarin
我正在使用MvvmCross v3和Xamarin解决方案创建一个跨平台项目,我想创建一些单元测试.
这似乎有点过时,所以我试图遵循这一点,它按预期工作.
但是,我现在正在尝试对我的一些域服务进行单元测试,这些服务依赖于特定于平台的MvvvCross插件(例如ResourceLoader).
运行测试会导致以下异常:
Cirrious.CrossCore.Exceptions.MvxException: Failed to resolve type
Cirrious.CrossCore.Plugins.IMvxPluginManager.
Run Code Online (Sandbox Code Playgroud)
我认为IMvxPluginManager可能是在设置流动登记,我需要在自己的项目实施平台的插件,但我不知道这将是建立我的单元测试项目的最佳方法是什么?有什么东西我错过了吗?
是否有针对上述任务的更新教程?
是否已有任何支持测试环境的插件平台扩展,或者我是否应该尝试自己编写它们?
通常,您不应该MvxPluginManager在服务测试期间加载插件或真实插件.
相反,您的单元测试应该为您的服务需要使用的接口注册模拟类型.
var mock = new Mock<INeedToUse>();
// use mock.Setup methods
Ioc.RegisterSingleton<INeedToUse>(mock.Object);
// or you can use constructor dependency injection on INeedToUse instead
Run Code Online (Sandbox Code Playgroud)
IMvxPluginManager如果你真的需要,你也可以注册一个模拟,但在大多数情况下,我不相信你应该需要它.如果您有一个绝对需要它的情况,请发布一个代码示例 - 在代码中比在文本中更容易交谈.
| 归档时间: |
|
| 查看次数: |
1754 次 |
| 最近记录: |