2010-03-05 4 views
2

J'utilise Web Forms MVP pour écrire un contrôle utilisateur DotNetNuke. Lorsque l'événement 'SubmitContactUs' est déclenché dans mon test unitaire, le présentateur tente de définir la propriété 'Message' sur le modal. Cependant, View.Modal est null dans le présentateur.Le test d'unité pour le présentateur Web Forms MVP a une valeur nulle. Modèle

L'infrastructure Web Forms MVP ne devrait-elle pas automatiquement générer un nouvel objet View.Model dans le présentateur? Il se peut que la partie "Arrangement" de mon test manque quelque chose dont le présentateur a besoin. Toute aide serait appréciée.

Voici mon test:

using System; 
using AthleticHost.ContactUs.Core.Presenters; 
using AthleticHost.ContactUs.Core.Views; 
using Xunit; 
using Moq; 

namespace AthleticHost.ContactUs.Tests 
{ 
    public class ContactUsPresenterTests 
    { 
     [Fact] 
     public void ContactUsPresenter_Sets_Message_OnSubmit() 
     { 
      // Arrange 
      var view = new Mock<IContactUsView>(); 
      var presenter = new ContactUsPresenter(view.Object); 
      // Act 
      view.Raise(v => v.Load += null, new EventArgs()); 
      view.Raise(v => v.SubmitContactUs += null, 
       new SubmitContactUsEventArgs("Chester", "Tester", 
        "[email protected]", "http://www.test.com", 
        "This is a test of the emergancy broadcast system...")); 
      presenter.ReleaseView(); 

      // Assert 
      Assert.Contains("Chester Tester", view.Object.Model.Message); 
     } 
    } 
} 

Répondre

4

Juste une supposition - mais vous avez besoin peut-être d'appeler la méthode « SetupAllProperties() » sur le point de vue raillé avant le présentateur normalement définir cette propriété modèle?

view.SetupAllProperties(); 
+0

Merci beaucoup! J'ai ajouté cette ligne juste en dessous où la maquette a été créée (var view = new Mock (); ) et cela a bien fonctionné. – jacksonakj

+0

Ceci indique à l'objet fantaisie de commencer à suivre les valeurs des propriétés. Sinon, il oubliera les valeurs définies. Documentation ici: http://code.google.com/p/moq/wiki/QuickStart#Properties Quelqu'un d'autre avec le même problème: http://tinyurl.com/3y9x2gj – Helephant

Questions connexes