3
我試圖單元測試ASP.NET MVC我控制器上的編輯動作3.Mvcontrib.MVC3.Testhelper的UpdateModel NullReferenceExceuption在單元測試
我已經通過的NuGet模擬出安裝Mvcontrib.MVC3.TestHelper我控制器上下文,但我仍然得到一個NullReferenceException
我的代碼看起來是這樣的:
[TestMethod]
public void it_should_redirect_to_index_after_editing_a_something_successfully()
{
var something= new SomeThing
{
ID = Guid.NewGuid(),
CreatedAt = DateTime.Now,
LastModified = DateTime.Now,
Owner = "Me",
Status = "new",
Title = "my Title",
Attachments = new List<Attachment>()
};
var repo = new FakeRepository();
var controller = new SomethingsController(repo);
new TestControllerBuilder().InitializeController(controller);
var result = controller.Edit(something) as RedirectToRouteResult;
result.AssertActionRedirect().ToAction<SomethingsController>(x => x.Index());
}
生產代碼看起來像這樣...
[HttpPost]
public ActionResult Edit(SomeThing something)
{
if (ModelState.IsValid)
{
var _something = _repository.GetDocumentByID(something.ID);
TryUpdateModel(_something);
_something.LastModified = DateTime.Now;
_repository.SaveChanges();
return RedirectToAction("Index","Somethings");
}
return View(something);
}
即使我使用的UpdateModel或TryUpdateModel它alwas與一個NullReferenceException崩潰......
任何幫助,指針將是非常美妙......
感謝您對我的情況下,你的幫助是ValueProvider其中t拋出異常和controller.ValueProvider = new FormCollection();做了那個測試的竅門......感謝指針 – 2011-02-04 10:19:26