При попытке написать тест, связанный с моими новыми задачами (MVC3, S # arp 2.0), я получаю эту ошибку при попытке запустить тест:
MyProject.Tests.MyProject.Tasks.CategoryTasksTests.CanConfirmDeleteReadiness:
SetUp: System.NullReferenceException
: ServiceLocator не был
инициализируется; Я пытался получить
SharpArch.NHibernate.ISessionFactoryKeyProvider
----> System.NullReferenceException: ссылка на объект не установлена в
экземпляр объекта.
в
SharpArch.Domain.SafeServiceLocator 1.GetService()
at
SharpArch.NHibernate.SessionFactoryKeyHelper.GetKeyFrom(Object
anObject) at
SharpArch.NHibernate.NHibernateRepositoryWithTypedId
2.get_Session ()
в
SharpArch.NHibernate.NHibernateRepositoryWithTypedId 2.Save(T
entity) at
MyProject.Tests.MyProject.Tasks.CategoryTasksTests.Setup()
in
C:\code\MyProject\Solutions\MyProject.Tests\MyProject.Tasks\CategoryTasksTests.cs:line
36
--NullReferenceException at Microsoft.Practices.ServiceLocation.ServiceLocator.get_Current()
at
SharpArch.Domain.SafeServiceLocator
1.GetService ()
Другие тесты, которые не включают новый класс (например, генерировать / подтверждать сопоставления базы данных), выполняются правильно.
Мой ServiceLocatorInitializer выглядит следующим образом
public class ServiceLocatorInitializer
{
public static void Init()
{
IWindsorContainer container = new WindsorContainer();
container.Register(
Component
.For(typeof(DefaultSessionFactoryKeyProvider))
.ImplementedBy(typeof(DefaultSessionFactoryKeyProvider))
.Named("sessionFactoryKeyProvider"));
container.Register(
Component
.For(typeof(IEntityDuplicateChecker))
.ImplementedBy(typeof(EntityDuplicateChecker))
.Named("entityDuplicateChecker"));
ServiceLocator.SetLocatorProvider(() => new WindsorServiceLocator(container));
}
}