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