[英]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.