1

我从事的项目由 3 层组成:表示(asp.net mvc)-> 业务逻辑-> 存储库

我们使用单元测试测试所有三个部分。

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

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

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

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

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

谢谢。

4

2 回答 2

0

business logic -> repository:集成测试是必要的,这里发现了很多严重的错误。通过识别错误的 SQL 查询,在这一层还发现了许多与性能相关的错误。

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

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

于 2013-06-18T06:38:28.330 回答
0

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

于 2012-12-06T09:59:02.023 回答