tdd and bdd in java 8 - what's in it for me?
DESCRIPTION
How does Java 8 affect the way we practiceTRANSCRIPT
![Page 1: TDD and BDD in Java 8 - what's in it for me?](https://reader033.vdocument.in/reader033/viewer/2022042614/55638844d8b42a20358b542c/html5/thumbnails/1.jpg)
and BDDWhat’s in it for me?
![Page 2: TDD and BDD in Java 8 - what's in it for me?](https://reader033.vdocument.in/reader033/viewer/2022042614/55638844d8b42a20358b542c/html5/thumbnails/2.jpg)
John Ferguson Smart
Consultant Trainer Mentor Author Speaker Coder
![Page 3: TDD and BDD in Java 8 - what's in it for me?](https://reader033.vdocument.in/reader033/viewer/2022042614/55638844d8b42a20358b542c/html5/thumbnails/3.jpg)
»TDD is not about writing tests»TDD is a design strategy:
»Write better-designed code»Have more confidence in our code»Make changes more easily»Write code that meets user requirements more accurately»(and incidentally...) »Build up a comprehensive set of automated tests
Test Driven Development
![Page 4: TDD and BDD in Java 8 - what's in it for me?](https://reader033.vdocument.in/reader033/viewer/2022042614/55638844d8b42a20358b542c/html5/thumbnails/4.jpg)
TDD
![Page 5: TDD and BDD in Java 8 - what's in it for me?](https://reader033.vdocument.in/reader033/viewer/2022042614/55638844d8b42a20358b542c/html5/thumbnails/5.jpg)
Behaviour Driven Development
![Page 6: TDD and BDD in Java 8 - what's in it for me?](https://reader033.vdocument.in/reader033/viewer/2022042614/55638844d8b42a20358b542c/html5/thumbnails/6.jpg)
![Page 7: TDD and BDD in Java 8 - what's in it for me?](https://reader033.vdocument.in/reader033/viewer/2022042614/55638844d8b42a20358b542c/html5/thumbnails/7.jpg)
BDD
![Page 8: TDD and BDD in Java 8 - what's in it for me?](https://reader033.vdocument.in/reader033/viewer/2022042614/55638844d8b42a20358b542c/html5/thumbnails/8.jpg)
Lambdas
java.time
Functional interfaces
StreamsType inference
Collections API
![Page 9: TDD and BDD in Java 8 - what's in it for me?](https://reader033.vdocument.in/reader033/viewer/2022042614/55638844d8b42a20358b542c/html5/thumbnails/9.jpg)
Dates and Times
![Page 10: TDD and BDD in Java 8 - what's in it for me?](https://reader033.vdocument.in/reader033/viewer/2022042614/55638844d8b42a20358b542c/html5/thumbnails/10.jpg)
Create date constants more easily
Date arithmetic that works
Works fine with Hamcrest asserts
![Page 11: TDD and BDD in Java 8 - what's in it for me?](https://reader033.vdocument.in/reader033/viewer/2022042614/55638844d8b42a20358b542c/html5/thumbnails/11.jpg)
Lambda Expressions
![Page 12: TDD and BDD in Java 8 - what's in it for me?](https://reader033.vdocument.in/reader033/viewer/2022042614/55638844d8b42a20358b542c/html5/thumbnails/12.jpg)
Conventional for loop
![Page 13: TDD and BDD in Java 8 - what's in it for me?](https://reader033.vdocument.in/reader033/viewer/2022042614/55638844d8b42a20358b542c/html5/thumbnails/13.jpg)
Use lambdas for more expressive expectations
![Page 14: TDD and BDD in Java 8 - what's in it for me?](https://reader033.vdocument.in/reader033/viewer/2022042614/55638844d8b42a20358b542c/html5/thumbnails/14.jpg)
Using a predicate
![Page 15: TDD and BDD in Java 8 - what's in it for me?](https://reader033.vdocument.in/reader033/viewer/2022042614/55638844d8b42a20358b542c/html5/thumbnails/15.jpg)
Lambda expressions +
Streams
![Page 16: TDD and BDD in Java 8 - what's in it for me?](https://reader033.vdocument.in/reader033/viewer/2022042614/55638844d8b42a20358b542c/html5/thumbnails/16.jpg)
Retrieve the event locations
![Page 17: TDD and BDD in Java 8 - what's in it for me?](https://reader033.vdocument.in/reader033/viewer/2022042614/55638844d8b42a20358b542c/html5/thumbnails/17.jpg)
Convert directly to a Set
![Page 18: TDD and BDD in Java 8 - what's in it for me?](https://reader033.vdocument.in/reader033/viewer/2022042614/55638844d8b42a20358b542c/html5/thumbnails/18.jpg)
Java 8 and Page Objects
![Page 19: TDD and BDD in Java 8 - what's in it for me?](https://reader033.vdocument.in/reader033/viewer/2022042614/55638844d8b42a20358b542c/html5/thumbnails/19.jpg)
Start off with the business objectives
Business requirements
![Page 20: TDD and BDD in Java 8 - what's in it for me?](https://reader033.vdocument.in/reader033/viewer/2022042614/55638844d8b42a20358b542c/html5/thumbnails/20.jpg)
Describe the business flow
Business flow
![Page 21: TDD and BDD in Java 8 - what's in it for me?](https://reader033.vdocument.in/reader033/viewer/2022042614/55638844d8b42a20358b542c/html5/thumbnails/21.jpg)
Describe the page interactions
Page interactions
![Page 22: TDD and BDD in Java 8 - what's in it for me?](https://reader033.vdocument.in/reader033/viewer/2022042614/55638844d8b42a20358b542c/html5/thumbnails/22.jpg)
Page implementation details
HTML details go here
![Page 23: TDD and BDD in Java 8 - what's in it for me?](https://reader033.vdocument.in/reader033/viewer/2022042614/55638844d8b42a20358b542c/html5/thumbnails/23.jpg)
Business Rules
Business Flow
Page/Component interac8ons
Page/Component details
Good automated acceptance tests have layers
![Page 24: TDD and BDD in Java 8 - what's in it for me?](https://reader033.vdocument.in/reader033/viewer/2022042614/55638844d8b42a20358b542c/html5/thumbnails/24.jpg)
Retrieve a list of word definitions
Convert WebDriver WebElements to text form
![Page 25: TDD and BDD in Java 8 - what's in it for me?](https://reader033.vdocument.in/reader033/viewer/2022042614/55638844d8b42a20358b542c/html5/thumbnails/25.jpg)
Retrieve a list of word definitions
The same thing with streams
![Page 26: TDD and BDD in Java 8 - what's in it for me?](https://reader033.vdocument.in/reader033/viewer/2022042614/55638844d8b42a20358b542c/html5/thumbnails/26.jpg)
Retrieve a list of word definitions
Use parallel streams for more optimal WebDriver page querying
![Page 27: TDD and BDD in Java 8 - what's in it for me?](https://reader033.vdocument.in/reader033/viewer/2022042614/55638844d8b42a20358b542c/html5/thumbnails/27.jpg)
Thank You
John Ferguson Smart
wakaleo
http://www.wakaleo.com