qra*_*azi 30 php bdd phpunit behat mink
我一直在寻找SO和谷歌,但我无法得到明确的答案.
PHPUnit是一个单元测试框架,就像JUnit一样.我使用它,也结合Selenium扩展进行功能测试.浏览时,我看到Behat/Mink不断被提及.但我不完全理解Behat在这里的适用方式.
使用Behat,您可以用人类可读的格式编写场景.然后,Behat可以将其转换为新项目的骨架类吗?但它是否也为单元测试提供了骨架类?你是使用Behat编写单元测试,还是使用PHPUnit/SimpleTest?
但是Behat/Mink确实取代了PHPUnit_Selenium-extension进行功能测试?
您是仅将Behat用于新项目,还是可以适应现有项目?
Jop*_*aij 36
我会认为Behat 是对PHPunit的补充.我的意思是通过使用Behat进行测试行为,PHPUnit来测试代码.使用BDD/TDD,首先要根据用户故事编写测试.为了使测试通过,您通常会使用TDD编写几个PHPUnit测试来创建能够通过BDD测试的应用程序.
BDD应该测试行为并且不知道应用程序的代码,例如实体/控制器/接口.您应该能够将另一个应用程序换出整个应用程序,并在应用程序的行为相同时仍然通过所有测试.
TDD,除了像你的思想之类的其他东西,应该指导你的类结构和它们之间的交互.除此之外,他们证明你的方法做他们应该做的事情,使意图清晰,并且可以毫无畏惧地重构.
SDC*_*SDC 13
是的,我会认为Behat是phpUnit的替代品,用于通用代码测试和使用浏览器自动化的功能测试.
对于一般测试,phpUnit是一个更成熟的产品,而Behat专注于使用"BDD"方法(行为驱动设计)编写的测试.phpUnit也有BDD功能,但Behat更倾向于这种风格.
由于我们讨论的是功能性浏览器测试而不是单元测试,因此您可能没有考虑他们拥有的一些更强大的单元测试功能; 你只想编写浏览器自动化.为此,你真的可以选择最适合你的两个套装.
有微妙的边缘情况下,他们每个人都有比其他的优势,但在大多数情况下他们都能够在各种浏览器的运行测试脚本.
我更喜欢Behat/Mink,因为它更灵活; 它可以支持多个浏览器自动化引擎,包括Selenium和Sahi,这意味着如果遇到问题,可以将测试切换到另一个并继续.我们遇到了这种情况,试图让一些Mink测试脚本在Selenium中运行; 切换到Sahi使其工作,并涉及只更改一行测试代码.
如果您不想编写BDD样式测试,还可以在没有Behat的情况下单独使用Mink.
这个答案好像都错了.
phpunit是单元测试,并且它遵守TDD.
phpspec和behat是一个功能测试,所以它是BDD.
它们相互补充,一个完美的场景将是一个你有两种测试类型的项目,但这可能仅限于能够负担得起的大型项目.
TDD测试单个或只是几个类.BDD测试应用程序中多个模块的完整功能.
归档时间: |
|
查看次数: |
12061 次 |
最近记录: |