【发布时间】:2010-03-04 09:39:51
【问题描述】:
关于使用 NUnit 对我的 ASP.Net MVC2 应用程序进行单元测试,我仍在寻找一些更好的点。
总的来说,测试我的 ActionResults、模型、存储库等是直截了当的,但我以前没有测试过 Ajax 方法,我想要一些关于我应该如何最好地进行测试的指导。
提前致谢。
【问题讨论】:
标签: jquery asp.net-mvc ajax unit-testing nunit
关于使用 NUnit 对我的 ASP.Net MVC2 应用程序进行单元测试,我仍在寻找一些更好的点。
总的来说,测试我的 ActionResults、模型、存储库等是直截了当的,但我以前没有测试过 Ajax 方法,我想要一些关于我应该如何最好地进行测试的指导。
提前致谢。
【问题讨论】:
标签: jquery asp.net-mvc ajax unit-testing nunit
测试返回JsonResult 的控制器操作与测试其他操作应该没有什么不同。考虑以下场景:
public class MyModel
{
public string Name { get; set; }
}
public class HomeController : Controller
{
public ActionResult Index()
{
return Json(new MyModel { Name = "Hello World" });
}
}
还有单元测试(对不起,它是 MSTest,我没有 NUnit atm,但它应该非常困难):
// arrange
var sut = new HomeController();
// act
var actual = sut.Index();
// assert
Assert.IsInstanceOfType(actual, typeof(JsonResult));
var jsonResult = (JsonResult)actual;
Assert.IsInstanceOfType(jsonResult.Data, typeof(MyModel));
var model = (MyModel)jsonResult.Data;
Assert.AreEqual("Hello World", model.Name);
【讨论】:
IMO,最好不要测试您的 Ajax 方法(我的意思是客户端,服务器上的控制器,您可以轻松测试),而是测试客户端的 UI。为了测试 UI,我建议您使用 Selenium RC 或 WatiN。
【讨论】: