c# - 验证属性从未使用 Moq 设置

标签 c# unit-testing properties moq verify

<分区>

Possible Duplicate:
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());
}

但是,即使在 Verify 之前的行中明确访问了 Property,此测试也通过了。

所以看起来Verify实际上意味着VerifyGet

我应该如何验证一个属性从未被设置?

最佳答案

改用下面的代码:

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

关于c# - 验证属性从未使用 Moq 设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13608382/

相关文章:

python - Python 中的单元测试对象 - 对象未在设置中覆盖

java - 有没有办法使用 Java Properties 读取 mime 类型文件?

c# - 让 Windows Store Sockets 与 Netcat 聊天?

c# - 使用匿名方法的例子和缺点

c# - 使用 FreeImage 对 JPEG 进行无损优化

java - 在不使用 java.util.Properties 的情况下读取文件并获取 key=value

iphone - IBOutlet 属性是否必须是非原子的?

c# - 带通配符的 FTP 目录部分列表

c# - 是否有必要在单元测试中启用可空上下文?

c# - NUnit:如何从非静态方法传递 TestCaseData?