我开始使用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!
答案 0 :(得分:2)
您分配给属性的值为拼写错误 - MockytestValue
而不是MocktestValue
。还可以使用VerifySet
检查属性是否已设置:
person.VerifySet(ia => ia.ASimpleStringProperty = "MocktestValue", "FailedTest");
BTW为什么您的A
课程标记为TestFixture
?