我的工作项目包括3层:演示文稿(asp.net mvc) - >业务逻辑 - >存储库
我们用unittests测试所有三个部分。
我们计划添加集成测试。 现在我们决定应该用它们测试哪个部分。
我们考虑下一个解决方案:
如果我们的核心用户很少,我会从第二个解决方案中获益。例如站点,移动版本,命令工具。在这种情况下,所有客户端都将使用经过充分测试的业务逻辑。
您如何看待哪种解决方案更好? 您能描述一下使用集成测试的经验吗?
感谢。
答案 0 :(得分:0)
我想说你的第一个选择应该是偏好。如果您要编写跨越多个层的进程内(即非浏览器自动化)测试,您也可以从“外部”开始,然后尽可能多地遍历层。通过调用控制器来启动测试应提供对系统行为(例如)意外或不完整用户输入的行为的深入了解和保证。您还可以在您的操作返回的视图模型上执行断言,从而最大限度地提高测试的相关性和覆盖率。
答案 1 :(得分:0)
business logic -> repository:
集成测试是必要的,这里有很多关键错误。通过识别错误的SQL查询,还可以在此层中找到许多与性能相关的错误。
presentation:
控制器测试反应不一。我相信网页的手动或自动测试(通过编码的UI)是必要的,但UI测试可能不会涵盖所有控制器和业务逻辑。所以目前我们正在为控制器编写测试。进行控制器测试的另一个原因是CodedUI自动化测试或UI手动测试需要大量时间来执行。
首先编写接口集成测试,然后编辑器测试然后编码UI。 手动测试应与所有此类活动并行进行。