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