[英]How to find out if method was called in a bool value in Rhino mocks?
[英]How to use Rhino Mocks and test that a method is not called?
我有以下代碼:
public class Foobar{
public static void Go(IFoo foo){
if (foo.bar != null){
foo.bar.action = !foo.bar.action;
}
}
}
並且想測試當 foo.bar == null 時 foo.bar.action 不會改變。
我已經模擬了一個 IFoo object,但我不確定我應該如何測試 go 來測試 rest。 有什么建議么?
您可以使用VerifyGet
模擬方法測試bar
屬性Get
僅調用一次 - 這是if
語句中的調用:
[Test]
public void Action_WasNotSet()
{
var mockFoo = new Mock<IFoo>();
Foobar.Go(mockFoo.Object);
mockFoo.VerifyGet(f => f.bar, Times.Once);
}
注意:我假設bar
是 class
當if
語句的計算結果為 true 時,可能會調用bar
屬性 3 次並且無法調用VerifyGet
如果您想明確bar
屬性肯定是null
,您可以添加以下模擬設置:
mockFoo.SetupGet(f => f.bar).Returns((Bar)null);
但作為 class 的默認值是null
,此設置不是必需的,但可能會使您的測試更具可讀性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.