【发布时间】:2019-01-11 13:51:26
【问题描述】:
我可以使用TestServer 进行集成测试,并且我可以手动模拟任何 DI 注入类中的方法,方法是用模拟类替换 ConfigureTestServices 类,如下所示:
var webHostBuilder =
new WebHostBuilder()
.UseEnvironment("Testing")
.UseContentRoot(projectDir)
.ConfigureTestServices(s =>
{
s.TryAddTransient(IMyClass, MyMockMyClass);
})
.UseStartup<Startup>();
其中MyMockMyClass 是MyClass 的替换,目的是替换方法(例如:Method1)。
是否可以选择使用最小起订量 Mock.Of<MyClass> 快速替换我的 Method1,而无需创建新类 MyMockMyClass?类似的东西:
var mymock = Mock.Of<IMyClass>();
Mock.Get(mymock ).Setup(m => m.Method1(It.IsAny<string>()).Returns(value: whatever);
然后以某种方式在上面的ConfigureTestServices 代码中使用mymock 和s.TryAddTransient(IMyClass, ... 行?
【问题讨论】:
标签: c# unit-testing asp.net-core-mvc integration-testing moq