正在验证moq(NUnit)中的引用属性

本文关键字:引用 属性 NUnit 验证 moq | 更新日期: 2023-09-27 18:23:49

我开始使用moq进行单元测试。我想做的就是:测试A类的"Execute"方法。该方法接受一个IA类型的对象,并在其中设置一个简单的属性

[TestFixture]
public class A
{
    public void Execute(object s)
    {
        if (s is IA)
        {
            (s as IA).ASimpleStringProperty = "MocktestValue";
        }
    }
}
public interface IA
{
    string ASimpleStringProperty { get; set; }
}

我的单元测试是这样写的:

但这对我下面的测试方法不起作用:你知道我哪里错了吗?

[Test]
public void TestMethod1()
{
    var person = new Mock<IA>();
    var a = new A();
    a.Execute(person.Object);
    person.VerifySet(ASimpleStringProperty = "MockytestValue", "FailedTest");
}

(我想检查ASimpleStringProperty是否为"Mocktestvalue",但由于某些原因无法调试时,我看到ASimpleStringProperty为null!

正在验证moq(NUnit)中的引用属性

您在分配给属性MockytestValue而不是MocktestValue的值中键入了错误。同时使用VerifySet检查是否设置了属性:

person.VerifySet(ia => ia.ASimpleStringProperty = "MocktestValue", "FailedTest");

BTW为什么您的A类标记为TestFixture