我使用Web Forms MVP编写DotNetNuke用户控件。当我的单元测试中出现'SubmitContactUs'事件时,演示者会尝试在模态上设置'Message'属性。但是,演示者中的View.Modal为null。
Web Forms MVP框架不应该在演示者中自动构建新的View.Model对象吗?可能是我的测试中的“排列”部分缺少演示者需要的东西。任何帮助将不胜感激。
这是我的测试:
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",
"ctester@test.com", "http://www.test.com",
"This is a test of the emergancy broadcast system..."));
presenter.ReleaseView();
// Assert
Assert.Contains("Chester Tester", view.Object.Model.Message);
}
}
}
答案 0 :(得分:4)
只是猜测 - 但是在演示者通常会设置Model属性之前,您可能需要在模拟视图上调用“SetupAllProperties()”方法吗?
view.SetupAllProperties();