Non c'è un modo per fare questo a livello globale (o staticamente).
Quello che faccio di solito è creare una classe TestConventions
che contenga tutte le personalizzazioni che voglio applicare ad ogni test.
internal class TestConventions : CompositeCustomization
{
public TestConventions() :
base(
new MongoObjectIdCustomization())
{
}
private class MongoObjectIdCustomization : ICustomization
{
public void Customize(IFixture fixture)
{
fixture.Register(ObjectId.GenerateNewId);
}
}
}
E poi applicare queste convenzioni per ogni prova:
var fixture = new Fixture().Customize(new TestConventions());
Se si sta utilizzando l'AutoFixture.XUnit2 (o AutoFixture.NUnit) plugin, è possibile ridurre questo boilerplate definendo un attributo che importa i tuoi convenzioni di prova:
public class MyProjectAutoDataAttribute : AutoDataAttribute
{
public MyProjectAutoDataAttribute() : base(
new Fixture().Customize(new TestConventions()))
{
}
}
E poi applicarlo alla vostra casi di test:
[Theory, MyProjectAutoData]
public void SomeFact(SomeClass sut)
{
}