目前我的测试代码中有一个非常奇怪的行为......这一切都始于用RangeAttribute
装饰字符串属性。我使用Validator
类在ASP.NET Core中测试模型验证,因此在下面的示例中MyClass
是一个请求对象。
我已经了解AutoFixture会考虑属性标记的属性。这就是(伪)代码的样子:
private void RunTest()
{
var sut = Fixture.Freeze<MyClass>();
sut.MyPropery = "12345";
// all tests from here on fails randomly
}
private class MyClass
{
[Required]
[Range(10000, 99999)]
public string MyPropery { get; set; }
}
有时候,生成的值是10000(woho!),有时我收到以下错误,我不确定原因:
AutoFixture无法从中创建实例 Ploeh.AutoFixture.Kernel.RangedNumberRequest,很可能是因为它 没有公共构造函数,是抽象的或非公共的类型。
我正在使用"AutoFixture.AutoNSubstitute": "3.49.0"
任何想法可能在这里出错?