symfony - 对 Symfony 测试实践的困惑 : functional vs integration testing

标签 symfony testing integration-testing functional-testing

Symfony testing documentation并没有真正提到功能测试集成测试之间的区别,但我的理解是they are different .

Symfony 文档这样描述功能测试:

  1. 提出要求;
  2. 测试响应;
  3. 点击链接或提交表格;
  4. 测试响应;
  5. 冲洗并重复。

虽然 Ruby on Rails docs像这样描述它:

  1. 网络请求是否成功?
  2. 用户是否被重定向到正确的页面?
  3. 用户是否成功通过身份验证?
  4. 是否在响应模板中存储了正确的对象?
  5. 是否在 View 中向用户显示了适当的消息?

Symfony 文档似乎在描述更类似于集成测试的内容。单击链接、填写表单、提交表单等。您正在测试所有这些不同的组件是否正确交互。在他们的示例测试用例中,他们基本上通过遍历网页来测试 Controller 的所有操作。

我很困惑为什么 Symfony 不区分功能测试和集成测试。 Symfony 社区中是否有人将测试隔离到特定的 Controller 操作?我是不是想多了?

最佳答案

  • 单元测试是指逐个测试类的方法,并检查它们是否在正确的上下文中进行正确的调用。如果这些方法使用依赖项(注入(inject)服务或什至该类的其他方法),我们将模拟它们以将测试隔离到仅当前方法。

  • 集成测试是指自动测试应用程序的功能。这是检查给定功能的所有可能使用场景是否按预期工作。要进行此类测试,您基本上是在使用爬虫,并模拟网站用户使用该功能,并检查生成的页面甚至生成的数据库数据是否一致。

  • 功能测试是指在预生产环境中手动挑战应用程序的可用性。您有一个质量保证团队,他们将推出一些方案来检查您的网站是否按预期运行。手动测试会给你无法自动获得的反馈,例如“这个按钮很丑”、“这个功能太复杂而无法使用”,或者任何其他人类(通常会像客户一样思考)可以提供的主观反馈.

关于symfony - 对 Symfony 测试实践的困惑 : functional vs integration testing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28681524/

相关文章:

php - Symfony2 - 来自表单集合元素的数据最终作为数组而不是实体

django - DjangoModelFactory 中的日期时间字段破坏了集成测试 (2.1)

unit-testing - Windows服务的Moles VS2010单元测试失败

java - 单元测试与 Spring 的集成测试

c# - 如何在流畅的断言中比较 null 和 string.Empty (或 "")?

php - Symfony2 Monolog 电子邮件只有一些异常(exception)

symfony - SonataDoctrineORMAdminBundle 抛出 array_combine 错误

javascript - 单击时包含具有不同变量值的模板文件 - Symfony2/Twig

.net - Visual Studio 和 .NET 中的测试条件

android - 双启动 - 手机上的最新 2 "original"Android 和 iPhone 版本