BDD in PHP - Behat
-
Upload
lukasz-kuzynski -
Category
Technology
-
view
3.609 -
download
4
Transcript of BDD in PHP - Behat
![Page 1: BDD in PHP - Behat](https://reader034.fdocuments.in/reader034/viewer/2022052214/554a0f84b4c905825d8b493c/html5/thumbnails/1.jpg)
BDD + PHP = Behat
Łukasz Kużyński – wookieb@wookiebplhttp://wookieb.pl
![Page 2: BDD in PHP - Behat](https://reader034.fdocuments.in/reader034/viewer/2022052214/554a0f84b4c905825d8b493c/html5/thumbnails/2.jpg)
What is BDD
● BDD = Behavior Driven Development● technique for testing and develop software● agile software development technique● variant of TDD● bridge between programmer and client
![Page 3: BDD in PHP - Behat](https://reader034.fdocuments.in/reader034/viewer/2022052214/554a0f84b4c905825d8b493c/html5/thumbnails/3.jpg)
Is a state of mind *
* http://blog.robustsoftware.co.uk/2009/11/what-is-bdd-behaviour-driven-design.html
What is BDD
![Page 4: BDD in PHP - Behat](https://reader034.fdocuments.in/reader034/viewer/2022052214/554a0f84b4c905825d8b493c/html5/thumbnails/4.jpg)
BDD in PHP
![Page 5: BDD in PHP - Behat](https://reader034.fdocuments.in/reader034/viewer/2022052214/554a0f84b4c905825d8b493c/html5/thumbnails/5.jpg)
How Behat's tests looks like
![Page 6: BDD in PHP - Behat](https://reader034.fdocuments.in/reader034/viewer/2022052214/554a0f84b4c905825d8b493c/html5/thumbnails/6.jpg)
Behat scenario schema
![Page 7: BDD in PHP - Behat](https://reader034.fdocuments.in/reader034/viewer/2022052214/554a0f84b4c905825d8b493c/html5/thumbnails/7.jpg)
Behat scenario - example
![Page 8: BDD in PHP - Behat](https://reader034.fdocuments.in/reader034/viewer/2022052214/554a0f84b4c905825d8b493c/html5/thumbnails/8.jpg)
Behat - FeatureContext
![Page 9: BDD in PHP - Behat](https://reader034.fdocuments.in/reader034/viewer/2022052214/554a0f84b4c905825d8b493c/html5/thumbnails/9.jpg)
Behat – First run (with our code)
![Page 10: BDD in PHP - Behat](https://reader034.fdocuments.in/reader034/viewer/2022052214/554a0f84b4c905825d8b493c/html5/thumbnails/10.jpg)
Same scenario with new values
![Page 11: BDD in PHP - Behat](https://reader034.fdocuments.in/reader034/viewer/2022052214/554a0f84b4c905825d8b493c/html5/thumbnails/11.jpg)
Scenario Outline
![Page 12: BDD in PHP - Behat](https://reader034.fdocuments.in/reader034/viewer/2022052214/554a0f84b4c905825d8b493c/html5/thumbnails/12.jpg)
Feature Background
Executed before each scenario
![Page 13: BDD in PHP - Behat](https://reader034.fdocuments.in/reader034/viewer/2022052214/554a0f84b4c905825d8b493c/html5/thumbnails/13.jpg)
Hooks
![Page 14: BDD in PHP - Behat](https://reader034.fdocuments.in/reader034/viewer/2022052214/554a0f84b4c905825d8b493c/html5/thumbnails/14.jpg)
Mooore hooksBeforeSuite
AfterSuite
BeforeFeature
AfterFeature BeforeaScenario AfterScenario
BeforeStep
AfterStep
![Page 15: BDD in PHP - Behat](https://reader034.fdocuments.in/reader034/viewer/2022052214/554a0f84b4c905825d8b493c/html5/thumbnails/15.jpg)
Given, When, Then
● No special meaning in code● Just a possibility to mark steps● Increase readability of FeatureContext
![Page 16: BDD in PHP - Behat](https://reader034.fdocuments.in/reader034/viewer/2022052214/554a0f84b4c905825d8b493c/html5/thumbnails/16.jpg)
Extend FeatureContext
Substitute for „horizontal inheritance”
![Page 18: BDD in PHP - Behat](https://reader034.fdocuments.in/reader034/viewer/2022052214/554a0f84b4c905825d8b493c/html5/thumbnails/18.jpg)
Pitfalls
http://elabs.se/blog/15-you-re-cuking-it-wrong
Feature should be written for humans,not programmers
![Page 19: BDD in PHP - Behat](https://reader034.fdocuments.in/reader034/viewer/2022052214/554a0f84b4c905825d8b493c/html5/thumbnails/19.jpg)
Can i write „unit tests” in BDD?
It is possible but ...inefficient
![Page 20: BDD in PHP - Behat](https://reader034.fdocuments.in/reader034/viewer/2022052214/554a0f84b4c905825d8b493c/html5/thumbnails/20.jpg)
Does BDD is a replacement for my standard tests
Questions?
![Page 21: BDD in PHP - Behat](https://reader034.fdocuments.in/reader034/viewer/2022052214/554a0f84b4c905825d8b493c/html5/thumbnails/21.jpg)
Łukasz Kużyński – wookieb@wookiebplhttp://wookieb.pl