在MVVMCross中测试ViewModel

时间:2013-05-21 14:06:56

标签: xamarin mvvmcross

我刚开始使用MVVMCross开发跨平台应用程序,我很难搞清楚如何测试我的ViewModel。我尝试在TwitterSearch中完成测试并遇到问题。特别是在MockSetup.cs中,我发现在最新版本的MvvmCross中似乎不再是IMvxViewDispatcherProvider,但这没关系,因为我认为其功能已经汇总到{ {1}}。但是,在为我的测试用例实际设置dipatcher时,调度程序不再有IMvxViewDispatcher方法,我找不到RequestNavigate的实现。所以我实际上无法对我的ViewModel进行任何测试。


我还尝试按照http://slodge.blogspot.com/2012/10/testing-viewmodels-in-mvvmcross.html进行测试,但又遇到了丢失MvxShowViewModelRequest的问题。

总而言之,我的问题是让MockSetup工作,以便我可以测试我的ViewModel。如果我可以在调度员身上指出正确的方向,我认为这会有所帮助。

1 个答案:

答案 0 :(得分:1)

看起来您正在尝试使用mvvmcross vnext对象测试mvvmcross v3应用程序。

针对v3的更新的Twitter搜索测试位于https://github.com/slodge/MvvmCross-Tutorials/tree/master/Sample%20-%20TwitterSearch/TwitterSearch.Test

此测试使用单个特殊模拟对象:https://github.com/slodge/MvvmCross-Tutorials/blob/master/Sample%20-%20TwitterSearch/TwitterSearch.Test/Mocks/MockMvxViewDispatcher.cs

此模拟的作用目前只是:

  • 提供一个非常简单的主线程(它使用当前线程)
  • 为任何导航请求提供简单存储。

你可以看到它用于: