Web窗体MVP演示者的单元测试具有空模型

时间:2010-03-05 16:29:49

标签: .net moq mvp xunit.net

我使用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);
        }
    }
}

1 个答案:

答案 0 :(得分:4)

只是猜测 - 但是在演示者通常会设置Model属性之前,您可能需要在模拟视图上调用“SetupAllProperties()”方法吗?

   view.SetupAllProperties();