tdd and bdd in java 8 - what's in it for me?

27
and BDD What’s in it for me?

Upload: wakaleo-consulting

Post on 26-May-2015

1.439 views

Category:

Technology


0 download

DESCRIPTION

How does Java 8 affect the way we practice

TRANSCRIPT

Page 1: TDD and BDD in Java 8 - what's in it for me?

and BDDWhat’s in it for me?

Page 2: TDD and BDD in Java 8 - what's in it for me?

John Ferguson Smart

Consultant  Trainer  Mentor  Author  Speaker  Coder

Page 3: TDD and BDD in Java 8 - what's in it for me?

»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?

TDD

Page 5: TDD and BDD in Java 8 - what's in it for me?

Behaviour Driven Development

Page 6: TDD and BDD in Java 8 - what's in it for me?
Page 7: TDD and BDD in Java 8 - what's in it for me?

BDD

Page 8: TDD and BDD in Java 8 - what's in it for me?

Lambdas

java.time

Functional interfaces

StreamsType inference

Collections API

Page 9: TDD and BDD in Java 8 - what's in it for me?

Dates and Times

Page 10: TDD and BDD in Java 8 - what's in it for me?

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?

Lambda Expressions

Page 12: TDD and BDD in Java 8 - what's in it for me?

Conventional for loop

Page 13: TDD and BDD in Java 8 - what's in it for me?

Use lambdas for more expressive expectations

Page 14: TDD and BDD in Java 8 - what's in it for me?

Using a predicate

Page 15: TDD and BDD in Java 8 - what's in it for me?

Lambda expressions +

Streams

Page 16: TDD and BDD in Java 8 - what's in it for me?

Retrieve the event locations

Page 17: TDD and BDD in Java 8 - what's in it for me?

Convert directly to a Set

Page 18: TDD and BDD in Java 8 - what's in it for me?

Java 8 and Page Objects

Page 19: TDD and BDD in Java 8 - what's in it for me?

Start off with the business objectives

Business requirements

Page 20: TDD and BDD in Java 8 - what's in it for me?

Describe the business flow

Business flow

Page 21: TDD and BDD in Java 8 - what's in it for me?

Describe the page interactions

Page interactions

Page 22: TDD and BDD in Java 8 - what's in it for me?

Page implementation details

HTML details go here

Page 23: TDD and BDD in Java 8 - what's in it for me?

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?

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?

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?

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?

Thank You

John Ferguson Smart

[email protected]

wakaleo

http://www.wakaleo.com