Je travaille avec un projet de test basé sur WhoCanHelpMe, basé sur Sharp Architecture, NHibernateValidator, etc. Comme écrit, le test d'unité when_the_profile_tasks_is_asked_to_create_a_profile crée l'objet profile et l'enregistre sans problème.System.NullReferenceException avec test d'unité WhoCanHelpMe
Maintenant, l'objet de profil est un type CreateProfileDetails qui dérive de leur propre ValidatableValueObject qui hérite de l'interface IValidatable.
Le problème survient lorsque ma classe est basée sur une entité plutôt que sur ValidatableValueObject. Lorsque le test est exécuté, System.NullReferenceException, car Validator est null. J'ai peur de ne pas pouvoir résoudre ce problème. Quelqu'un at-il des suggestions pour aller au fond des choses?
Merci,
-Ted-
Ceci est la trace de la pile:
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
C'est la hiérarchie des classes:
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}
Le code source est ici http://code.google.com/p/sharp-architecture/source/browse/trunk/src/SharpArch/SharpArch.Core/DomainModel/ValidatableObject. cs>
Code source pour l'enregistrement de validation: (désolé, je suis un nouvel utilisateur et je ne peux pas l'afficher en tant que lien, vous devrez donc copier/coller) whocanhelpme.codeplex.com/SourceControl/changeset/view/58203 # 883241
Une trace de pile serait très utile. Quelle référence est exactement nulle? D'après ce que vous avez écrit, il semble que la méthode 'Validate()' soit nulle, ce qui est un peu impossible avec C#. –
Je suis assez loin pour voir que ServiceLocator retourne null mais ne pas jeter des exceptions non plus. Cela aboutit finalement à la référence null Validator. – tlum