AutoFixture有时无法为标记为RangeAttribute的属性生成值

时间:2016-10-11 11:58:21

标签: asp.net-core autofixture nsubstitute

目前我的测试代码中有一个非常奇怪的行为......这一切都始于用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"

编写单元测试

任何想法可能在这里出错?

0 个答案:

没有答案