Wir verwenden Unity als unser Injection-Injection-Framework.Verwenden der Abhängigkeitsinjektion in der SpecFlow-Schrittdatei
Ich möchte einen Abnahmetest erstellen und benötige eine Instanz von DossierService.
Leider bekomme ich die folgende Ausnahme:
BoDi.ObjectContainerException: 'Schnittstelle kann nicht aufgelöst werden [...]'
[Binding]
public class DossierServiceSteps : BaseSteps
{
private IDossierService dossierService;
public DossierServiceSteps(IDossierService dossierService)
{
this.dossierService = dossierService;
}
}
- Was genau ist Bodi? Ich kann keine nützlichen Informationen finden.
- Wie kann ich SpecFlow anweisen, den normalen Unity-Container zu verwenden?
Vielen Dank im Voraus
Edit: Ich habe SpecFlow.Unity
wie so versucht, mit:
public static class TestDependencies
{
[ScenarioDependencies]
public static IUnityContainer CreateContainer()
{
var container = UnityConfig.GetConfiguredContainer();
container.RegisterTypes(typeof(TestDependencies).Assembly.GetTypes().Where(t => Attribute.IsDefined(t, typeof(BindingAttribute))),
WithMappings.FromMatchingInterface,
WithName.Default,
WithLifetime.ContainerControlled);
return container;
}
}
In UnityConfig
die Typen sind
container.RegisterType<IDossierService, DossierService>(new InjectionConstructor(typeof(IDataService), typeof(IDossierRepository), typeof(IDbContext), true));
Aber ich richtig
registriert bekomme immer noch die gleichen Ausnahmen auf. Wenn ich einen Breakpoint am Anfang derCreateContainer()
Methode von
TestDependencies
setze, bricht es nicht ...