使用集成测试测试控制器

时间:2012-12-06 09:31:07

标签: integration-testing

我的工作项目包括3层:演示文稿(asp.net mvc) - >业务逻辑 - >存储库

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

我们计划添加集成测试。 现在我们决定应该用它们测试哪个部分。

我们考虑下一个解决方案:

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

如果我们的核心用户很少,我会从第二个解决方案中获益。例如站点,移动版本,命令工具。在这种情况下,所有客户端都将使用经过充分测试的业务逻辑。

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

感谢。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

presentation:控制器测试反应不一。我相信网页的手动或自动测试(通过编码的UI)是必要的,但UI测试可能不会涵盖所有控制器和业务逻辑。所以目前我们正在为控制器编写测试。进行控制器测试的另一个原因是CodedUI自动化测试或UI手动测试需要大量时间来执行。

首先编写接口集成测试,然后编辑器测试然后编码UI。 手动测试应与所有此类活动并行进行。