2017-04-26 85 views
1

在接受记者采访时,项目经理问我以下问题:有没有办法测试PHPUnit以外的Symfony应用程序?

我在你的简历看,你正在使用PHPUnit的4测试?为什么不用 您使用Symfony的内置测试?

我回答:

我所知道的是,Symfony的应用测试是通过PHPUnit的,这是从 2.3和2.7的文档建议做。我不知道Symfony3 是否带有测试组件!

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

+7

听起来像PM一样不知道他们在说什么。根据我的经验,这通常是我工作的一部分。 Symfony确实有一些零碎的东西可以建立在例如WebTestCase用于集成/功能测试,但它仍然通过PHPUnit iirc使用。 –

+1

@JonStirling,我同意第二句话:D。感谢您的解释,是的,我们扩展了WebTestCase,但最后要执行的命令是'phpunit ....' –

回答

3

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

有替代测试工具,如phpspec写单元测试和Behat更高水平测试(功能和验收测试),但两者都没有使用内部的Symfony,所以并不真的似乎要说的是什么问关于。

+1

谢谢先生,它删除了所有的混淆 –

+1

很高兴我可以帮助和良好的面试/获得一个新工作 – dbrumann

+0

谢谢先生,我赞赏:) –

0

给你的答案的补充信息: 根据我的经验,WebTestCase也作为静态方法在所有测试中引导内核。由于这个原因,单元测试不太好,因为这个测试应该很快。他们设计了功能测试控制器和操作,但不需要启动HTTP服务器。

然后为:

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

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

相关问题