當我從Steve Sanderson的Pro ASP.NET MVC框架(從asp.net 1.0遷移到mvc 2 beta)遷移示例SportsStore應用程序using this app provided by eric lipton ,一切都很好 - 除了2個單元測試。
該錯誤消息在兩個是:
Tests.CartControllerTests.VeryLongTestMethodName:
System.ArgumentNullException:值不能爲未定義。
參數名稱:context
我懷疑這是因爲版本2中的默認模型綁定器支持DataAnnotations,因爲來自NUnit的堆棧調用跟蹤告訴我有關DefaultModelBinder中的一些問題。任何想法如何解決它?
編輯
試圖用Moq來解決問題,但它沒有奏效。 下面的代碼:
當將項目從asp.net mvc 1.0遷移到asp.net mvc 2 beta時,一些單元測試失敗
var request = new Moq.Mock<HttpRequestBase>();
request.Setup(r => r.HttpMethod).Returns("POST");
var mockHttpContext = new Moq.Mock<HttpContextBase>();
mockHttpContext.Setup(c => c.Request).Returns(request.Object);
controllerContext = new ControllerContext(mockHttpContext.Object, new RouteData(),
new Moq.Mock<ControllerBase>().Object);
方法我測試只提交POST。把「POST」放到我的測試中可以嗎?
你能從失敗的單元測試中看到完整的堆棧跟蹤嗎? – Eilon 2009-12-01 20:48:25
而我的名字是* Eilon * Lipton - 不是* Eric * Lipton :) – Eilon 2009-12-01 20:48:56
對不起,對於名稱 是的,可以提供堆棧 – chester89 2009-12-01 20:57:12