【发布时间】:2013-04-25 15:36:06
【问题描述】:
我正在尝试模拟我的内部虚拟方法。 当我调试时,我可以看到我到达了我期望的地方,并且我的内部虚拟方法被执行,但测试失败了。 此外,我验证了“this”上下文是代理而不是常规类实例。
方法:
public void MyMethod() { MyInternalMethod() }
internal virtual void MyInternalMethod() {}
单元测试片段:
Because of = () => { myMock.Object.MyMethod() };
It should_run_inner_internal_virtual_MyInternalMethod = () =>
{
myMock.Verify(x => x.MyInternalMethod(),Times.Once());
};
我将不胜感激。
亲切的问候。
【问题讨论】:
-
你确定你在这里测试的是正确的吗?在我看来,您正在尝试测试实现而不是行为。如果您稍后决定内联此行为而不是为其使用单独的方法,那么即使行为没有改变,测试也会失败。你的内部方法应该做什么?你能以某种方式模拟和测试这种行为吗?
-
我将帖子编辑得更清楚。我想验证执行的方法。几天前我做了一件有趣的事,它(对于另一个单元)有效,我检查了代码,但我仍然无法让它工作。
-
我理解你想要做什么,但我在质疑 为什么 - 我认为你也应该这样做 =) 但如果你坚持:方法和在同一个程序集中定义单元测试?
-
它们在不同的程序集中。
标签: c# unit-testing moq