此问题可以通过显式指定需要排除的参数为 null
或 DefaultValue”
来解决。例如,假设有以下类:
public class MyClass
{
public int MyInt { get; }
public string MyString { get; }
public bool MyBool { get; }
public MyClass(int myInt, string myString, bool myBool)
{
MyInt = myInt;
MyString = myString;
MyBool = myBool;
}
}
如果我们只想要自动填充 myInt
和 myString
这两个构造函数参数,并允许 myBool
接受默认值,代码如下:
var fixture = new Fixture();
var myClass = fixture.Build()
.Without(x => x.MyBool)
.Create();
如果我们希望将 myBool
参数设为 false
,并且仍然使用 Without()
方法排除该参数,代码如下:
var fixture = new Fixture();
var myClass = fixture.Build()
.Without(x => x.MyBool)
.With(x => x.MyBool, false)
.Create();
这样,我们就可以在只有一个构造函数的情况下排除某些参数或将它们设为特定值。