1

在一次采访中,项目经理问了我以下问题:

我在您的简历中看到您正在使用 PHPUnit 4 进行测试?为什么不使用 Symfony 的内置测试?

我回答了:

我所知道的是 Symfony 应用程序测试是通过 PHPUnit 完成的,这是从 2.3 和 2.7 的文档中推荐的。我不知道 Symfony3 是否带有测试组件!

我的回答正确吗?感谢您的解释。

4

2 回答 2

3

是的,你是对的。Symfony 有一个用于功能测试的WebTestCase(扩展KernelTestCase,您可以在其中发现它扩展了 PhpUnit)。此外,Symfony 提供了一个PhpUnitBridge,它为为 Symfony 应用程序编写 PHPUnit-Tests 提供了有用的东西,例如使使用过时组件的测试失败。两者都依赖于 PHPUnit,并在“vanilla”phpunit 之上提供了额外的功能。

还有其他测试工具,例如用于编写单元测试的phpspec和用于更高级别测试(功能和验收测试)的Behat,但两者都没有在 Symfony 内部使用,因此似乎并不是真正被询问的内容。

于 2017-04-26T12:54:06.460 回答
0

您的答案的附加信息:根据我的经验,WebTestCase在所有测试中也将引导内核作为静态方法。因此,该工具对单元测试不太好,因为该测试应该很快。他们使用功能测试控制器和操作来设计它,但不需要启动 HTTP 服务器。

那么对于:

  • 单元测试,内置不是很好的选择
  • 功能测试,这是初衷,但我认为,Behat 是更好的解决方案
  • 系统测试——不太好。

总结,这就是我不使用这个工具的原因。

于 2017-05-11T21:03:44.097 回答