Autofixture是否能够根据使用EF fluent API完成的映射配置创建实体?我更具体地看一下字符串是否已经配置了一定长度,但Autofixutre正在生成长度更长的字符串。
- 更新了问题 - 让我们以 UserName 属性的用户实体为例,其长度固定为8个字符。 UserName 属性的配置使用EF Fluent API完成,如下所示:
modelBuilder.Entity<User>().Property(t => t.UserName).HasMaxLength(8);
现在,当我使用Autofixture实例化User实体时,它为我提供了一个长度超过8的 UserName 字符串。这会在尝试将此实体保存到db时触发异常。有许多不同配置的属性,这使我无法充分利用自动混合功能。
答案 0 :(得分:0)
AutoFixture对您的ORM一无所知。因此,没有内置的EF配置支持。它确实支持一些System.ComponentModel.DataAnnotations属性。
我猜AutoFixture只支持其中3个:
因此,对于特定示例,您可以将[StringLength]
添加到UserName属性,而不是使用Fluent API。
要获得更多支持,您需要一个可以读取EF配置并使用EF约束配置AutoFixture的扩展。在这方面做了一些努力,但似乎比听起来更难。
请看这里 - https://github.com/AutoFixture/AutoFixture/issues/162