C# 验证moq中的引用属性(NUnit)
我开始使用moq进行单元测试。 我想做的就是:测试类A的“Execute”方法。该方法接受一个IA类型的对象,并在其中设置一个简单的属性C# 验证moq中的引用属性(NUnit),c#,unit-testing,.net-4.0,nunit,moq,C#,Unit Testing,.net 4.0,Nunit,Moq,我开始使用moq进行单元测试。 我想做的就是:测试类A的“Execute”方法。该方法接受一个IA类型的对象,并在其中设置一个简单的属性 [TestFixture] public class A { public void Execute(object s) { if (s is IA) { (s as IA).ASimpleStringProperty = "MocktestValue"; } }
[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");
}
[测试]
公共void TestMethod1()
{
var person=newmock();
var a=新的a();
a、 执行(人、物);
person.VerifySet(ASimpleStringProperty=“MockytestValue”,“FailedTest”);
}
(我想检查ASimpleStringProperty是否为“Mocktestvalue”,但由于某些原因无法检查
调试时,我看到SimpleStringProperty为null!您在值中键入了您分配给属性的值-
MockytestValue
,而不是MocktestValue
。还可以使用VerifySet
检查是否设置了属性:
person.VerifySet(ia => ia.ASimpleStringProperty = "MocktestValue", "FailedTest");
顺便问一下,为什么您的
A
类标记为TestFixture
?我仍然得到一个模拟异常:FailedTest预期对模拟的调用至少失败一次,但从未执行过:ia=>ia.ASimpleStringProperty=“MocktestValue”未配置任何设置。@现在他必须不命名。是否使用VerifySet
?根据TestFixture属性:它表示类包含测试方法!是的,我必须验证Executemethod是否将“ASimpleSTringProperty”设置为“MockTestValue”…但是,你能告诉我哪里出了问题吗?@nowhohommustnotbenamed。检查你到底将什么值设置为属性-可能还有另一个输入错误。而且你的VerifySet调用很奇怪。不要认为它会被编译。使用lambda