我必须测试在 MyMobileApp.MyService.Module 中实现的 IoC 服务。
目前我的单元测试项目 MyMobileApp.MyService.Module.Tests 已在 IoC 模块 MyMobileApp.MyService.Module 上引用
CFTestRunner 用于调试,Visual Studio 测试运行器也可用于运行测试并输出到 GUI 窗口(???)
恕我直言,这种架构有缺点:
- 服务必须在 [TestInitialize] 中手动初始化:
try
{
var module = new Module(); // Drawback: what if 2 services should be used?
module.AddServices();
}
catch (Exception) // Services must be added only once
{
// In TestInitialize
// ClassInitilaize method is not executed if unit test is running under CFTestRunner???
}
this.myService = RootWorkItem.Services.Get();
- 要测试另一个服务实现,我应该更改参考并重新编译测试项目
因此我有一些改进的想法:
使用 ProfileCatalog 的可测试版本允许 IoC 容器自动添加测试服务是否很好?这个 ProfileCatalog 如何正确部署在设备/模拟器上?
在测试类中使用注入服务好吗(如果可能的话)?
我在哪里可以找到具有良好测试模式的示例代码/项目/文章 - 我的意思是测试 IoC 服务