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();
}
请提供更多说明。现在问题还不清楚。