我正在开发一个具有客户端和服务器端的项目。我正在编写一个“预登记”工具,它将验证我们在客户端和服务器之间的大量通信。
我已经在双方进行了单元测试,现在我真的想测试两者之间的集成。 就像与服务器的真实客户端连接一样,反之亦然。
我真的想对此进行单元测试,但我很难弄清楚如何初始化MMVMCross框架和我的视图模型类。
在另一个线程中,我在运行测试的“控制台应用程序”上寻求帮助,但是初始化框架也很困难,这让我放松了使用Visual Studio和reSharper进行单元测试的酷感。
我的视图模型使用SQLite和HttpClient与async / await。
例如:我找不到实例化需要此接口的视图模型的方法:
IChatService, IMvxMessenger, IDataService, ISettingsService
一些来自框架的一些来自我自己的代码。
我知道并且我正在尝试在TestFixtureSetUp
上注册我的那些,但是当然,由于MVVM基本子系统(ioc?)尚未设置,因此失败了。
某些上述服务(例如IDataService
)也需要ISQLiteConnectionFactory, IMvxMessenger, ISettingsService
。
我知道单元测试应该很快,但我的想法是将所有这些测试都放在一个新的Category
中,我只能在我的签到之前运行,我的伙伴,服务器开发人员才能运行在他办理登机手续之前。
这里最好的方法是什么? 任何提示,建议,调查/研究的事情都会有所帮助,因为我几乎坚持这一点。
塞尔吉奥
答案 0 :(得分:1)
例如:我找不到实例化需要此接口的视图模型的方法:
IChatService,IMvxMessenger,IDataService,ISettingsService
通常,这将使用Mock实现完成,然后直接使用这些Mocks调用ViewModel构造函数。
我很难弄清楚如何初始化MMVMCross框架
为了初始化框架的IoC部分,您可以使用MvxIoCSupportingTest
助手类 - https://github.com/slodge/MvvmCross/blob/v3/Cirrious/Test/Cirrious.MvvmCross.Test.Core/MvxIoCSupportingTest.cs
如果您需要框架的其他部分,那么通常您应该以某种方式模拟这些。例如,看看在这两篇文章中如何模拟导航:
如果此答案没有足够的信息,请提供更多关于您尝试编写的测试的示例代码。