有没有办法测试 PHPUnit 以外的 Symfony 应用程序?
Is there a way to test Symfony application other than PHPUnit?
在一次面试中,项目经理问了我以下问题:
I see in your resume that you are using PHPUnit 4 for tests? Why don't
you use the built-in testing of Symfony?
我回答:
What I know is that Symfony app testing is done via PHPUnit, which is
recommended from the docs of 2.3 and 2.7. I don't know if Symfony3
comes with a testing component!
我的回答正确吗?感谢您的解释。
是的,你是对的。 Symfony 有一个 WebTestCase (extending the KernelTestCase where you can find that it extends PhpUnit) for functional testing. Additionally Symfony provides a PhpUnitBridge 可以为 Symfony 应用程序编写 PHPUnit 测试提供有用的东西,例如使使用已弃用组件的测试失败。两者都依赖于 PHPUnit 并在 "vanilla" phpunit.
之上提供额外的功能
还有其他测试工具,例如用于更高级别测试(功能和验收测试)的 phpspec for writing unit tests and Behat,但两者都没有在 Symfony 内部使用,因此似乎并不是真正被问及的问题.
您回答的其他信息:
根据我的经验,WebTestCase
也 bootstrap 内核在所有测试中作为静态方法。因此,该工具不太适合单元测试,因为该测试应该很快。他们使用功能测试控制器和操作来设计它,但不需要启动 HTTP 服务器。
然后:
- 单元测试,内置不是好的选择
- 功能测试,这是初衷,但我认为,Behat 是更好的解决方案
- 系统测试 - 不太好。
总结,这就是我不使用这个工具的原因。
在一次面试中,项目经理问了我以下问题:
I see in your resume that you are using PHPUnit 4 for tests? Why don't you use the built-in testing of Symfony?
我回答:
What I know is that Symfony app testing is done via PHPUnit, which is recommended from the docs of 2.3 and 2.7. I don't know if Symfony3 comes with a testing component!
我的回答正确吗?感谢您的解释。
是的,你是对的。 Symfony 有一个 WebTestCase (extending the KernelTestCase where you can find that it extends PhpUnit) for functional testing. Additionally Symfony provides a PhpUnitBridge 可以为 Symfony 应用程序编写 PHPUnit 测试提供有用的东西,例如使使用已弃用组件的测试失败。两者都依赖于 PHPUnit 并在 "vanilla" phpunit.
之上提供额外的功能还有其他测试工具,例如用于更高级别测试(功能和验收测试)的 phpspec for writing unit tests and Behat,但两者都没有在 Symfony 内部使用,因此似乎并不是真正被问及的问题.
您回答的其他信息:
根据我的经验,WebTestCase
也 bootstrap 内核在所有测试中作为静态方法。因此,该工具不太适合单元测试,因为该测试应该很快。他们使用功能测试控制器和操作来设计它,但不需要启动 HTTP 服务器。
然后:
- 单元测试,内置不是好的选择
- 功能测试,这是初衷,但我认为,Behat 是更好的解决方案
- 系统测试 - 不太好。
总结,这就是我不使用这个工具的原因。