[英]Verify if method called in the mocked class
如果我们有这样的事情:
public class test
{
public void Condition()
{
if (x == y)
{
methodOne();
}
else
{
methodTwo();
}
}
}
如何使用Rhino Mock编写单元测试来断言methodOne
被调用?
通常,您不会为要测试的类创建模拟程序。 您可以为其依赖项创建模拟。
因此,如果您的代码实际上是:
public class Test
{
private readonly IFoo foo;
public Test(IFoo foo)
{
this.foo = foo;
}
public void Condition()
{
if (x == y)
{
foo.MethodOne();
}
else
{
foo.MethodTwo();
}
}
}
...然后有必要为IFoo
创建一个模拟,并将其传递给您要测试的Test
实例。
尽管部分模拟可以让您测试是否调用了同一类中的方法,但是我通常会避免这种情况。 测试您是否可以看到调用MethodOne
或MethodTwo
的效果 。
您可以利用MethodOne作为重要方法:
public virtual void MethodOne()
{
}
并使用部分模拟:
MockRepository mock = new MockRepository();
var mockTest = mock.PartialMock<Test>();
mockTest.Expect(m => m.MethodOne());
mock.ReplayAll();
mock.VerifyAll();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.