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

时间:2013-07-18 11:28:05

标签: c# unit-testing .net-4.0 nunit moq

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

[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!

1 个答案:

答案 0 :(得分:2)

您分配给属性的值为拼写错误 - MockytestValue而不是MocktestValue。还可以使用VerifySet检查属性是否已设置:

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

BTW为什么您的A课程标记为TestFixture