【发布时间】:2017-09-29 21:04:44
【问题描述】:
我有一个取决于服务的课程。我已经注册了它:
container.Register<IMain, Main>();
container.Register<IChild, Child>();
在为此类编写测试时,我想模拟 IChild 中的一种方法。所以我有 mockICild.Setup(...etc)。
但是你不能注册模拟类型,所以我必须在测试中手动实例化 Main,对吗?
或者在 Simple Injector 或 MSTest 的深处有什么神奇的东西可以做相当于:
[TestMethod]
public void foo()
{
var mockChild = new Mock<IChild>();
var main = container.GetInstance<IMain>(
() => new Mock<IMain>(mockChild));
mockChild.Setup(and so on...)'
}
?
干杯, .pd.
29-09-17 - 感谢所有提供答案的人。
【问题讨论】:
-
当前状态的问题不清楚,因为它不完整。阅读How to Ask,然后提供minimal reproducible example,可以用来更好地理解您的问题。
-
不是完全重复,但答案在 IMO stackoverflow.com/a/26485923/3294832
-
好吧,@Ric.Net,我的答案至少似乎与该答案完全相同:-)
标签: c# unit-testing mstest simple-injector