ich habe folgendes Problem in Bezug auf AutoFixture istVerwenden erstellt ein AutoFixture Mock in einer konkreten Implementierung
public SUT(IConcrete concrete)
{
DTO BuildDTO()
{
return new DTO
{
URL = concrete.GetString(arg1, arg2);
};
}
}
public Concrete : IConcrete
{
public Concrete(ISomeHandler someHandler)
{
...
}
public GetString(obj arg1, obj arg2)
{
return someHandler.GetUri(arg1, arg2);
}
}
public void Test(
[Frozen] Mock<ISomeHandler> someHandler,
SUT mySUT)
{
someHandler.Setup(...);
mySUT.DoStuff();
//assert everything went as expected
}
Mein Problem in Code einfach erklärt, wie melde ich mich an die IConcrete mit AutoFixture, so dass ich auf den eingefrorenen Mock zugreifen kann, der im Testfall in ihn eingefügt werden soll?
In Wirklichkeit geht es darum, eine HttpRequestMessage in einen URL-Resolver zu injizieren, der in einem Handler vom Controller in einem Web-API-Projekt aufgerufen wird.
ich versucht habe, die IConcrete mit einem autofixture erstellt Mock
fixture.Register<IConcrete>(new Mock<ISomeHandler>());
zu registrieren, aber dann zugreifen kann ich nicht diesen Mock in dem Unit-Test und Inbetriebnahme des Rückgabewert.
Vielen Dank im Voraus für irgendwelche und alle Hilfe :)
Wenn 'SUT' auf' IConcrete' abhängig ist, warum dann auch kümmern uns um 'ISomeHandler'? –
Ich interessiere mich für den ISomeHandler, weil es eine URL ausgibt und ich möchte überprüfen, ob dies korrekt generiert wird. –
In dem bereitgestellten Code gibt es keine Interaktion zwischen 'SUT' und' ISomeHandler'. –