Sharp Architecture, NHibernateValidator 등을 기반으로하는 WhoCanHelpMe를 기반으로하는 테스트 프로젝트로 작업하고 있습니다. when_the_profile_tasks_is_asked_to_create_a_profile 단위 테스트는 프로파일 객체를 생성하고 문제없이 저장합니다.WhoCanHelpMe가있는 System.NullReferenceException 단위 테스트
이제 프로필 개체는 IValidatable 인터페이스를 상속하는 ValidatableValueObject에서 파생 된 CreateProfileDetails 유형입니다.
내 클래스가 ValidatableValueObject가 아닌 Entity를 기반으로 할 때 문제가 발생합니다. 테스트가 실행되면 Validator가 null이므로 System.NullReferenceException이 발생합니다.
나는이 나쁜 행동을 해결하기가 어려울 것 같습니다. 누구든지이 밑바닥까지 도달 할 수있는 제안이 있습니까?
감사합니다,
-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
스택 추적은 매우 유용합니다. 어떤 참조가 null입니까? 당신이 작성한 것으로부터 마치'Validate()'메쏘드가 null 인 것처럼 보입니다. 이것은 C#에서는 불가능합니다. –
ServiceLocator가 null을 돌려 주지만 예외를 throw하지는 않는지 충분히 알았습니다. 결국 Validator 참조가 null이됩니다. – tlum