Czy ktoś ma implementację leżącą w pobliżu automatycznego kontenera za pomocą Rhino Mocks i NInject?Automatycznie pozorowany pojemnik: Rhino Mocks i NInject
Odpowiedz
OK Zbudowałem go samodzielnie, wykorzystując integrację Moq jako punkt wyjścia. To bardzo proste. Musisz te 3 klasy:
public class AutoMockingKernel : StandardKernel
{
private readonly IMockProvider _mockProvider;
public void Reset()
{
Components.Get<ICache>().Clear();
}
protected override bool HandleMissingBinding(Type service)
{
var isSelfBindable = TypeIsSelfBindable(service);
var binding = new Binding(service)
{
ProviderCallback = isSelfBindable
? StandardProvider.GetCreationCallback(service)
: _mockProvider.GetCreationCallback(),
IsImplicit = true
};
if (!isSelfBindable)
binding.ScopeCallback = ctx => null;
AddBinding(binding);
return true;
}
public AutoMockingKernel(IMockProvider mockProvider, INinjectSettings settings, params INinjectModule[] modules)
: base(settings, modules)
{
_mockProvider = mockProvider;
}
public AutoMockingKernel(IMockProvider mockProvider, params INinjectModule[] modules)
: base(modules)
{
_mockProvider = mockProvider;
}
}
internal class RhinoMockProvider : IProvider
{
public Type Type { get; private set; }
/// <summary>
/// Initializes a new instance of the <see cref="RhinoMockProvider"/> class.
/// </summary>
public RhinoMockProvider(Type type)
{
Type = type;
}
public object Create(IContext context)
{
return MockRepository.GenerateMock(Type, Type.EmptyTypes);
}
}
public class RhinoAutoMockProvider : IMockProvider
{
public Func<IContext, IProvider> GetCreationCallback()
{
return ctx => new RhinoMockProvider(ctx.Request.Service);
}
}
Następnie można utworzyć jądro auto-szyderczy w badanej jednostki takie jak to:
[Test]
public void Test()
{
var kernel = new AutoMockingKernel(new RhinoAutoMockProvider());
... etc
}
W interesie, jak zarządzać wyzwalaniem resetowania w [Teardown]? –
Używam klasy bazowej dla wszystkich moich urządzeń testowych, które wywołują reset podczas rozłączania. Używam również statycznego kontenera jądra. Zdecydowanie nie idealny, ale uważam, że tego typu rzeczy nigdy nie istnieją. – cbp
- 1. Rhino Mocks & Compact Framework
- 2. AssertWasCalled w rhino mocks
- 3. Rhino Mocks, VerifyAllExpectations
- 4. Rhino Mocks: Mocking HttpRequestBase.Files
- 5. Uzyskiwanie SUCHA z Rhino Mocks
- 6. Rhino Mocks: Stub i Mocks. Jaka jest różnica
- 7. Rhino Mocks AAA Szybki start?
- 8. rhino-mocks - dobre Przykładowe aplikacje
- 9. Rhino Mocks: Repeat.Once() nie działa?
- 10. Rhino Mocks - Czy naprawdę potrzebujemy stubów?
- 11. test jednostkowy Url.Action (przy użyciu Rhino Mocks?)
- 12. Stubbingowanie właściwości za pomocą Rhino Mocks
- 13. Makiety obiektu z konstruktorem - Rhino Mocks
- 14. Rhino Mocks Poradniki krok po kroku
- 15. Rhino Mocks - Ustaw właściwość, jeśli metoda nazywa się
- 16. Jak wyśmiać zaindeksowaną własność za pomocą Rhino Mocks?
- 17. Rhino Mocks - Sprawdź zestaw właściwości, gdy nie ma Property Get
- 18. Składnia Porównanie makiet Moq i Rhino
- 19. Wymień IoC Spring.Net na inny pojemnik (np. Ninject)
- 20. Czy Ninject obsługuje Func (fabryka generowana automatycznie)?
- 21. Rhino Mocks - Różnica między GenerateStub <T> i GenerateMock <T>
- 22. Jak ustawić wywołanie Expect, aby sprawdzić, czy metoda nie jest wywoływana w Rhino Mocks
- 23. JUnit i Mocks in Liferay
- 24. Ninject i F #?
- 25. Masz problemy ze zrozumieniem ninject (lub po prostu pojemnik IOC w ogóle) nad fabryczną DI?
- 26. Rhino Mocks. Jak dodać oczekiwanie, że procedura obsługi zdarzenia zostało subskrybowanych
- 27. Jak mogę odgadnąć Func <T,TResult> w Rhino Mocks?
- 28. Czy można stosować Rhino Mocks do odgałęzienia ogólnej metody, w której nie zależy mi na typie?
- 29. Rhino Mocks AssertWasCalled (wiele razy) na geterze właściwości za pomocą AAA
- 30. Korzystanie Rhino Mocks mock parametr wyjściowy, który jest tworzony w sposób jestem testowania
wiem wszystko powinno być oczywiste, a jednak ... Jakie funkcje czy szukasz ? Więcej kontekstu, który możesz udostępnić? –