Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.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# 当两个方法在同一类中时,使用正确的参数调用Validate方法_C#_Unit Testing_Nunit_Moq - Fatal编程技术网

C# 当两个方法在同一类中时,使用正确的参数调用Validate方法

C# 当两个方法在同一类中时,使用正确的参数调用Validate方法,c#,unit-testing,nunit,moq,C#,Unit Testing,Nunit,Moq,我有一个方法调用同一类中的方法,如下所示: public class ClassSample { public MethodA() { var objectA = new ObjectA(); // do somethings with objectA return MethodB(objectA) } public MethodB(ObjectA objectA) { // do somethings

我有一个方法调用同一类中的方法,如下所示:

public class ClassSample {

    public MethodA() {
        var objectA = new ObjectA();
        // do somethings with objectA
        return MethodB(objectA)
    }

    public MethodB(ObjectA objectA) {
        // do somethings
    }
}

从上面的代码块中,如果我想在方法A中做一些事情之后测试它,那么使用正确的参数测试方法B。

您可以将
MethodB
设置为可验证

 mock.Setup(p => p.MethodB(It.Is<ObjectA>(q => q.status == true))).Verifiable();
mock.Setup(p=>p.MethodB(It.Is(q=>q.status==true)).Verifiable();
检查下面的代码片段

    public class ObjectA
    {
        public ObjectA()
        {
        }

        public bool status { get; set; }
    }

    public class ClassSample
    {

        public ObjectA MethodA()
        {
            var objectA = new ObjectA();
            // do somethings with objectA
            objectA.status = true;
            return MethodB(objectA);
        }

        public ObjectA MethodB(ObjectA objectA)
        {
            // do somethings
            return objectA;
        }
    }

    [TestMethod]
    public void TestClassSample()
    {
        var mock = new Mock<ClassSample>();
        mock.Setup(p => p.MethodB(It.Is<ObjectA>(q => q.status == true))).Verifiable();

        var result = mock.Object.MethodA();

        mock.Verify();
    }
公共类ObjectA
{
公众反对a()
{
}
公共布尔状态{get;set;}
}
公共类示例
{
公共对象A方法A()
{
var objectA=new objectA();
//用objectA做一些事情
objectA.status=true;
返回方法B(对象A);
}
公共对象A方法B(对象A对象A)
{
//做事
返回对象a;
}
}
[测试方法]
公共void TestClassSample()
{
var mock=new mock();
mock.Setup(p=>p.MethodB(It.Is(q=>q.status==true)).Verifiable();
var result=mock.Object.MethodA();
mock.Verify();
}

请提供更多说明。现在问题还不清楚。