2
我正在使用Web窗体MVP编写一个DotNetNuke用户控件。当在我的单元测试中引发'SubmitContactUs'事件时,演示者尝试在模态上设置'消息'属性。但是,演示者中View.Modal为null。Web窗体MVP演示者的单元测试有一个空模型
Web窗体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",
"[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);
}
}
}
谢谢!我在创建模拟的地方添加了该行(var view = new Mock(); ),并且效果很好。 –
jacksonakj
2010-03-08 06:31:32
这告诉模拟对象开始跟踪属性值。否则,它会忘记设置的值。这里的文档:http://code.google.com/p/moq/wiki/QuickStart#Properties其他人也有同样的问题:http://tinyurl.com/3y9x2gj – Helephant 2010-07-20 17:18:39