2012-12-06 273 views
1

我的项目包括3个层次:演示(asp.net mvc) - >业务逻辑 - >资源库集成测试的测试控制器

我们用unittests测试所有这三个部分。

我们计划添加集成测试。 现在我们正在决定哪个部分应该与他们一起测试。

我们认为未来的解决方案:

  • 测试控制器,在这种情况下,系统的所有三个部分将 参与
  • 测试业务逻辑,在这种情况下,只有2件将参与

如果我们的核心用户很少,我会从第二种解决方案中获利。例如网站,手机版,命令工具。在这种情况下,所有客户都将使用经过良好测试的业务逻辑。

您认为哪种解决方案更好? 您能描述一下使用集成测试的经验吗?

谢谢。

回答

0

我会说你的第一个选择应该是一个偏好。如果您要编写跨越多个图层的进程内(即不是浏览器自动化)测试,那么您最好尽可能远离“外部”,并尽可能多地执行尽可能多的图层。通过调用您的控制器来启动您的测试应该能够提供有关您的系统行为给予(例如)意外或不完整的用户输入的见解和保证。您还可以对您的操作返回的视图模型执行断言,从而最大限度地提高测试的相关性和覆盖率。

0

business logic -> repository:集成测试是必要的,在这里可以找到许多重要的错误。通过识别错误的SQL查询,还可以在此层找到许多与性能相关的错误。

presentation:控制器测试有一个混合的反应。我相信Web页面的手动或自动测试(通过编码UI)是必要的,但UI测试可能不包括所有控制器和业务逻辑。所以目前我们也在为控制器编写测试。进行控制器测试的另一个原因是CodedUI自动化测试或UI手动测试需要很长时间来执行。

首先编写接口集成测试,然后控制器测试,然后编写UI。 手动测试应该与所有这些活动并行进行。