Digamos que eu tenha um Service
que tenha uma dependência em TimeProvider
.
O que faço agora para configurar o uso do FakeTimeProvider
AutoFixture e do Moq para meus testes é:
public class FakeTimeProviderCustomization : ICustomization {
public void Customize(IFixture fixture) {
fixture.Customize<TimeProvider>
(c => c.FromFactory(() => new FakeTimeProvider()));
}
}
public class MoqAutoDataAttribute : AutoDataAttribute {
public MoqAutoDataAttribute()
: base(() => new Fixture()
.Customize(new AutoMoqCustomization())
.Customize(new FakeTimeProviderCustomization())
) {
}
}
[Theory, MoqAutoData]
public async Task Test_TimeRelatedStuff(
[Frozen] TimeProvider timeProvider,
Service sut) {
...
var fakeTimeProvider = timeProvider as FakeTimeProvider;
...
Posso evitar o elenco FakeTimeProvider
que tenho que fazer toda vez?