有没有办法测试除PHPUnit之外的Symfony应用程序?

时间:2017-04-26 12:07:22

标签: php symfony phpunit symfony-2.3 symfony-3.2

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

  

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

我回答:

  

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

我的回答是否正确?谢谢你的解释。

2 个答案:

答案 0 :(得分:3)

是的,你是对的。 Symfony有WebTestCase(扩展KernelTestCase,您可以在其中找到它扩展PhpUnit)进行功能测试。另外,Symfony提供了一个PhpUnitBridge,它为编写Symfony应用程序的PHPUnit-Tests提供了有用的东西,例如:使用已弃用的组件使测试失败。两者都依赖于PHPUnit并在" vanilla"之上提供额外的功能。 PHPUnit的。

还有其他测试工具,例如用于编写单元测试的phpspec和用于更高级别测试(功能和验收测试)的Behat,但两者都不在Symfony中使用,因此不需要。似乎真的被问到了什么。

答案 1 :(得分:0)

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

然后为:

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

总结,这就是为什么我不使用这个工具。