【发布时间】:2009-10-05 20:50:12
【问题描述】:
我想在“item”对象重定向到另一个动作之前测试它里面的数据。
public ActionResult WebPageEdit(WebPage item, FormCollection form)
{
if (ModelState.IsValid)
{
item.Description = Utils.CrossSiteScriptingAttackCheck(item.Description);
item.Content = Utils.CrossSiteScriptingAttackCheck(item.Content);
item.Title = item.Title.Trim();
item.DateUpdated = DateTime.Now;
// Other logic stuff here
webPagesRepository.Save(item);
return RedirectToAction("WebPageList");
}
这是我的测试方法:
[Test]
public void Admin_WebPageEdit_Save()
{
var controller = new AdminController();
controller.webPagesRepository = DataMock.WebPageDataInit();
controller.categoriesRepository = DataMock.WebPageCategoryDataInit();
FormCollection form = DataMock.CreateWebPageFormCollection();
RedirectToRouteResult actionResult = (RedirectToRouteResult)controller.WebPageEdit(webPagesRepository.Get(1), form);
Assert.IsNotNull(actionResult);
Assert.AreEqual("WebPageList", actionResult.RouteValues["action"]);
var item = ((ViewResult)controller.WebPageEdit(webPagesRepository.Get(1), form)).ViewData.Model as WebPage;
Assert.NotNull(item);
Assert.AreEqual(2, item.CategoryID);
}
在这一行失败了:
var item = ((ViewResult)controller.WebPageEdit(webPagesRepository.Get(1), form)).ViewData.Model as WebPage;
我正在考虑是否有任何方法可以在“项目”对象重定向到其他操作之前对其进行测试?
【问题讨论】:
-
请编辑您的问题以包括: 1:可能编译的代码(并非所有 WebPageEdit 的代码路径都返回一个值)。 2:您收到的错误的描述。
标签: .net asp.net-mvc unit-testing moq testing