Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 验证moq中的引用属性(NUnit)_C#_Unit Testing_.net 4.0_Nunit_Moq - Fatal编程技术网

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

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"; } }

我开始使用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");
}
[测试]
公共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