2
我正在嘗試moq,並且我對Setup()方法有疑問。我有以下的接口和類:關於使用安裝程序設置Moq行爲的問題
public interface IMyInterface
{
void Print(string name);
}
public class MyClass
{
private IMyInterface my;
public MyClass(IMyInterface my)
{
this.my = my;
}
public void Print()
{
my.Print("hello world");
}
}
而且我已經得到了使用NUnit這個單元測試:
[Test]
public void AnotherTest()
{
var mock = new Mock<IMyInterface>();
mock.Setup(m => m.Print("hello world")).AtMostOnce();
var myClass = new MyClass(mock.Object);
myClass.Print();
mock.Verify(m => m.Print("hello world"), Times.Exactly(1));
}
我已經試過這兩個註釋/取消註釋出以下行,這兩項測試分別爲成功的。這讓我懷疑在這種情況下Setup()是否必要,因爲我正在執行Verify()?
我正在使用版本3.5.716.1。
是的,我剛剛意識到爲什麼測試通過關於第二個quetsion。 – Jeff 2009-08-17 02:39:58
在我看來,手動驗證所有場景比設置行爲更明確,然後執行VerifyAll()。 – Jeff 2009-08-17 02:45:44