Я пытаюсь выяснить, как протестировать мою библиотеку Ninject. Я имею в виду, что в моей библиотеке используется ядро Ninject, чтобы разрешить все их зависимости. Это основной класс моей библиотеки:Тестирование с помощью ninject и nsubstitute
public class Core : ICore {
private Ninject.IKernel compositionRoot;
public Core()
{
this.state = KernelState.initializing;
this.backends = new Dictionary<Core.Identity.DomainIdentity, Backend.Infrastructure.IBackend>();
this.BuildIoC(compositionRoot);
this.configuration = this.compositionRoot.Get<Core.Configuration.ICoreConfiguration>();
this.serviceHost = this.compositionRoot.Get<System.ServiceModel.ServiceHost>();
}
где BuildIoC()
является:
internal void BuildIoC(Ninject.IKernel compositionRoot = null)
{
this.compositionRoot = compositionRoot ?? new Ninject.StandardKernel(
new IoC.Modules.BackendModule(),
new IoC.Modules.PluginsModule(),
new IoC.Modules.ConfigurationModule(),
new IoC.Modules.ServiceModule(this));
}
В настоящее время, мне нужно построить несколько тестов на этом классе. Итак:
- Я хотел бы «макет»
configuration
иserviceHost
полей. Как я мог это получить? - Что такое
NSubstituteMockingKernel
подставка именно для? Я не совсем понимаю, для чего это.
До сих пор я не смог добиться ничего элегантного. Я не знаю, что такое mock, ninject kernel, modules, classes?
Например, serviceHost
является реализацией веб-сервиса. Я бы хотел, чтобы класс Core
загрузил насмешливый объект configuration
... Как я буду действовать, чтобы это получить?
Библиотеке следует использовать рамки IoC?
Это может помочь http://stackoverflow.com/questions/18545983/ninject-auto-mocking-using-substitute –
Спасибо, Александр. Я уже читал немного раньше. Тем не менее, я не совсем понимаю, что решает NSubstituteMockingKernel? – Jordi
Это один из библиотеки под названием Ninject.MockingKernel. Вы можете найти некоторые документы на github https://github.com/ninject/Ninject.MockingKernel/wiki –