Я работаю с тестовым проектом на основе WhoCanHelpMe, который основан на Sharp Architecture, NHibernateValidator и т. Д. Как написано, модульный тест when_the_profile_tasks_is_asked_to_create_a_profile создает объект профиля и сохраняет его без проблем.
Теперь объект профиля представляет собой тип CreateProfileDetails, который наследуется от их собственного ValidatableValueObject, который наследует интерфейс IValidatable.
Проблема появляется, когда мой класс основан на Entity, а не на их ValidatableValueObject. При выполнении теста возникает исключение System.NullReferenceException, поскольку Validator имеет значение null.
Боюсь, что не могу решить это плохое поведение. У кого-нибудь есть предложения, чтобы докопаться до этого?
Спасибо
-Ted-
Это трассировка стека:
should ask the question repository to save the new question : FailedObject reference not set to an instance of an object.
System.NullReferenceException: Object reference not set to an instance of an object.
at SharpArch.Core.DomainModel.ValidatableObject.IsValid()
at FieldAudit.Framework.Validation.ValidatableExtensions.Validate(IValidatable entity) in ValidatableExtensions.cs: line 33
at FieldAudit.Tasks.QuestionTasks.CreateQuestion(Question question) in QuestionTasks.cs: line 40
at MSpecTests.FieldAudit.Tasks.when_the_question_tasks_is_asked_to_create_a_question.b__2() in QuestionTasksSpecs.cs: line 137
Это иерархия классов:
entity = {FieldAudit.Domain.Question}
[FieldAudit.Domain.Question] = {FieldAudit.Domain.Question}
base {SharpArch.Core.DomainModel.Entity} = {FieldAudit.Domain.Question}
base {SharpArch.Core.DomainModel.EntityWithTypedId} = {FieldAudit.Domain.Question}
base {SharpArch.Core.DomainModel.ValidatableObject} = {FieldAudit.Domain.Question}
Validator = null
base {SharpArch.Core.DomainModel.BaseObject} = {FieldAudit.Domain.Question}
Исходный код здесь http://code.google.com/p/sharp-architecture/source/browse/trunk/src/SharpArch/SharpArch.Core/DomainModel/ValidatableObject.cs>
Исходный код для регистрации проверки: (извините, я новый пользователь и не могу опубликовать это как ссылку, поэтому вам придется скопировать / вставить) whocanhelpme.codeplex.com/SourceControl/changeset/view/58203# 883241