我有点搞不清楚这个计划的目的
ExpectConstructor()
关于
Mock
ExpectConstructor
会导致
MockManager
Verify()
如果未调用构造函数,即如果未实例化模拟类型的实例。
ExpectConstructor()
如果不为该构造函数指定任何参数,则似乎不会设置该期望值,因此我的测试无论如何都会通过。
我的问题:我是否遗漏或误解了什么?如果
不是用来验证构造函数调用的,它是用来做什么的?
考虑这三个NUnt测试来说明问题:
[Test]
public void exampleTest1()
{
MockManager.Init();
Mock fooMock = MockManager.Mock(typeof(Foo));
fooMock.ExpectConstructor().Args(10);
Foo f = new Foo(10); // Constructor called
MockManager.Verify();
// This test passes, as expected...so far so good
}
[Test]
public void exampleTest2()
{
MockManager.Init();
Mock fooMock = MockManager.Mock(typeof(Foo));
fooMock.ExpectConstructor();
Foo f = new Foo(); // Constructor called
MockManager.Verify();
// This test passes...also as expected
}
[Test]
public void exampleTest3()
{
MockManager.Init();
Mock fooMock = MockManager.Mock(typeof(Foo));
fooMock.ExpectConstructor();
// nb. not instantiating an instance of Foo
MockManager.Verify();
// This test passes - why?!
}
提前感谢你的帮助。