2012-11-28 56 views
2
設置

可能重複:
Moq - How to verify that a property value is set via the setter驗證屬性從未使用起訂量

我希望下面的測試失敗:

public interface IObjectWithProperty 
{ 
    int Property { get; set; } 
} 

[TestMethod] 
public void Property_ShouldNotBeCalled() 
{ 
    var mock = new Mock<IObjectWithProperty>(); 

    mock.Object.Property = 10; 

    mock.Verify(x => x.Property, Times.Never()); 
} 

然而,這個測試通過,即使Property明確地在Verify之前被訪問。

所以看起來Verify實際上是指VerifyGet

我應該如何驗證屬性從未設置?

回答

12

使用下面的代碼來代替:

mock.VerifySet(x => x.Property = It.IsAny<int>(), Times.Never());

+0

謝謝,這個作品。語法看起來像是一個容易陷入的陷阱,因爲它看起來像代碼正在被測試,實際上它不是。將不得不去現在搜索我的代碼'Verify(*,Times.Never())'... –