【发布时间】:2015-04-25 05:36:20
【问题描述】:
Symfony testing documentation 并没有真正提到 功能测试 和 集成测试 之间的区别,但我的理解是 they are different。
Symfony 文档这样描述功能测试:
- 提出请求;
- 测试响应;
- 点击链接或提交表单;
- 测试响应;
- 冲洗并重复。
虽然Ruby on Rails docs 是这样描述的:
- 网络请求是否成功?
- 用户是否被重定向到正确的页面?
- 用户是否成功通过身份验证?
- 响应模板中是否存储了正确的对象?
- 是否在视图中向用户显示了适当的消息?
Symfony 文档似乎在描述更类似于集成测试的东西。单击链接、填写表单、提交表单等。您正在测试所有这些不同的组件是否正常交互。在他们的示例测试用例中,他们基本上通过遍历网页来测试控制器的所有操作。
我很困惑为什么 Symfony 不区分功能测试和集成测试。 Symfony 社区中是否有人将测试隔离到特定的控制器操作?我是不是想多了?
【问题讨论】:
-
我会在 BDD 中抽象出所有这些......你正在将一个通用的 symfony 示例与一个包含数据持久化和用户身份验证的 ROR 示例进行比较......
-
我对比较的观点是 Symfony 建议编写功能测试,而不仅仅是发出请求和测试响应。他们建议您然后“单击”并“浏览”结果以测试其他组件。 Rails 文档不建议这样做,因为他们在集成测试文档中谈到了这一点
-
Rails 没有最终的测试方法。这只是一种方法。
标签: symfony testing integration-testing functional-testing