Ich verstehe, dass Autofixure eine Strategie hat, wie Booleschen erstellt werden (beginnend mit dem booleschen Wert true ). Zumindest gibt es Nähte, um ein Muster zu geben: < /p>
Code: Select all
public class Foo
{
public bool SomeBoolean { get; set; }
}
[Fact]
public void Verify_Autofixture_Boolean_Strategy()
{
var fixture = new Fixture();
var model = fixture.Build().CreateMany();
model.Select(x => x.SomeBoolean)
.Should()
.BeEquivalentTo([true, false, true]);
}
Was ich nicht verstehe, ignoriert es die Anpassung, die ich für eine Instanz von ifixure ausdrücklich gemacht habe. .
Code: Select all
[Fact]
public void Autofixture_Should_Allow_Boolean_Customizations()
{
var fixture = new Fixture();
fixture.Customize(
composer =>
composer.With(x => x.SomeBoolean, false)
);
var model = fixture.Build().Create();
// Is true, why?
Assert.False(model.SomeBoolean);
}
Einfrieren eines Bools scheint für mich keine Option zu sein, da Sie, wenn Sie ein komplexeres Modell in Betracht ziehen (mit potenziell vielen Booleschen), wenn Sie sicherstellen möchten, dass alle bis auf eine von ihnen randomisiert sind und Sie steuern können, welcher einen expliziten Wert hat.