NSubstitute 使用参数构造函数设置 arg
NSubstitute set up arg with parameter constructor
我们如何使用构造函数参数设置参数?
下面是一个示例用例。
public interface ICalculator
{
int Add(AddWithValues withValues);
}
public class AddWithValues {
AddWithValues(int a, int b) {
A = a;
B = b;
}
public int A {get;}
public int B {get;}
}
calculator = Substitute.For<ICalculator>();
calculator
.Add(Arg.Is<AddWithValues>(??));
如果 Add 接受 a 和 b 整数,文档会显示如何设置它们。
我不能使用谓词,因为 A 和 B 是只读属性。在这种情况下,我们如何设置 AddWithValues(依次指定 a 和 b 值)?
如果我对你的问题理解正确,我们可以使用谓词来做到这一点:
calculator
.Add(Arg.Is<AddWithValues>(x => x.A == 42 && x.B > 10));
如果您在 AddWithValues
上定义相等性,您也可以使用它来匹配所需的值:
calculator
.Add(new AddWithValues>(42, 21)); // Assuming AddWithValues defines value equality
我们如何使用构造函数参数设置参数?
下面是一个示例用例。
public interface ICalculator
{
int Add(AddWithValues withValues);
}
public class AddWithValues {
AddWithValues(int a, int b) {
A = a;
B = b;
}
public int A {get;}
public int B {get;}
}
calculator = Substitute.For<ICalculator>();
calculator
.Add(Arg.Is<AddWithValues>(??));
如果 Add 接受 a 和 b 整数,文档会显示如何设置它们。 我不能使用谓词,因为 A 和 B 是只读属性。在这种情况下,我们如何设置 AddWithValues(依次指定 a 和 b 值)?
如果我对你的问题理解正确,我们可以使用谓词来做到这一点:
calculator
.Add(Arg.Is<AddWithValues>(x => x.A == 42 && x.B > 10));
如果您在 AddWithValues
上定义相等性,您也可以使用它来匹配所需的值:
calculator
.Add(new AddWithValues>(42, 21)); // Assuming AddWithValues defines value equality