技术开发 频道

ASP.NET MVC架构下的测试驱动开发

   接下来,我们将首先实现测试代码的编写。根据前面的第一条测试要求:如果没有把一个ProductId传递到该页面,则应该抛出一个异常。我们需要把一个新的单元测试添加到我们的测试工程。右击你的测试工程的Controllers文件夹,选择“添加→新的测试”。然后,选择单元测试模板(见图2),并且命名此该新的单元测试为ProductControllerTest。



               图2—添加一个新的单元测试

   在此,请诸位注意我们是如何创建一个新的单元测试的,因为存在多种方式可以错误地添加一个单元测试。例如,如果你右击Controllers文件夹并且选择“添加→新的测试”,那么你会看到一个单元测试向导。这个向导将生成一个单元测试,此测试将运行于一个web服务器上下文中。但是,这并不是我们想实现的。如果你看到如图3所示的对话框,那么,你要提醒自己你正在以一种错误的方式试图添加一个MVC单元测试。



           图3—无论何时看到这样一个对话框,请点击Cancel按钮!

   默认情况下,该ProductControllerTest将包含如列表1所示的唯一的一个测试方法。

   列表1—系统自动生成的最初的文件ProductControllerTest.cs 
 

[TestMethod]
public void TestMethod1()
{
//
// TODO: 在此添加测试逻辑
//…………
}


   现在,我们想修改这个测试方法以便它能够测试是否抛出一个异常—当Details页面要求的ProductId参数不能满足时。于是,我们创建如列表2所示的正确测试。

   列表2—修改后的文件ProductControllerTest.cs
 

[TestMethod]
[ExpectedException(typeof(ArgumentNullException), "Exception no ProductId")]
public void Details_NoProductId_ThrowException()
{
ProductController controller = new ProductController();
controller.Details(null);
}


 

 

0
相关文章