1
TypeMock 3.5のMock
クラスのExpectConstructor()
メソッドの目的について少し混乱しています。ExpectConstructor()がこのテストを失敗させる原因は何ですか?
私は、コンストラクタが呼び出されない場合ExpectConstructor
を呼び出すと、MockManager
はVerify()
時に失敗する原因だろうと思っているだろう、すなわち嘲笑タイプのインスタンスがインスタンス化されていない場合。
しかし、そのコンストラクタへの引数を指定しないでExpectConstructor()
を呼び出すと、その期待値が設定されていないように見えます。
私の質問:何かが紛失していると思いますか? ExpectConstructor()
がコンストラクタ呼び出しを検証するためのものでない場合、それは何ですか?あなたの助けを事前に
[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?!
}
ありがとう:
は、これらの問題を説明する3つのNUnitのテストを考えてみましょう。