有没有一种方法可以让 AutoFixture 创建带有内部 setter 的属性?
我查看了 AutoFixture 源代码,并发现在 AutoPropertiesCommand 中,GetProperties 方法检查属性是否具有 GetSetMethod() != null。对于具有内部 setter 的属性,除非将 ignorePublic 参数设置为 true,否则此方法会返回 null。
当然,最简单的方法是使 setter 公开,但在我所在的项目中,这不是正确的解决方案。
下面是一个示例项目的简化代码。
我查看了 AutoFixture 源代码,并发现在 AutoPropertiesCommand 中,GetProperties 方法检查属性是否具有 GetSetMethod() != null。对于具有内部 setter 的属性,除非将 ignorePublic 参数设置为 true,否则此方法会返回 null。
当然,最简单的方法是使 setter 公开,但在我所在的项目中,这不是正确的解决方案。
下面是一个示例项目的简化代码。
public class Dummy
{
public int Id { get; set; }
public string Name { get; internal set; }
}
public class TestClass
{
[Fact]
public void Test()
{
var dummy = new Fixture().Create<Dummy>();
Assert.NotNull(dummy.Name);
}
}