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);
}
}
}
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
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