Introduction to lambda behave

Post on 26-Jun-2015

133 views 0 download

description

Are you a Java developer and you've seen the fluent and modern specification frameworks available in other programming languages such as spock or jasmine and wondering why we can't have the same thing? Then Lambda Behave is made for you! It uses numerous Java 8 features in order to enable cleaner and more readable tests and specifications. This quickie will introduce the framework, explain why you would want to use it over junit and cover some of its cool features, including: * How to write fluent and clean specifications in your domain language * How to write data driven specifications * How to integrate these into your build tool or IDE * How IDE usage can influence library design for the better http://richardwarburton.github.io/lambda-behave/

Transcript of Introduction to lambda behave

Lambda BehaveA modern testing and behavioural specification framework for Java 8

@richardwarburto

Talk Outline

What do I want in a testing framework?

Live Coding Examples

Comparison with other frameworks

Summary

What do I want in a testing framework?

Write a feature description in business domain terms

Parameterise different configurations

Property Based Testing:

Automatically generate your testcases based upon a property

Live Coding

Conclusions & Summary

Junit doesn’t offer the fluency or features of lambda-behave

Cucumber: Regex some text in order to execute code

Spock & ScalaTest are great but not Java based

Conclusions & Summary

Future Improvements

● Plugin API○ Support for Spring & Vertx

● Improved generators & mocking

● HTML Reports

● Expectation logs

● Heisentest Detector

● Support parallel runners

● Support concurrent tests better

Summary

● Existing testing solutions either unreadable or convoluted

● Lambda Behave offers a fluent and modern testing style

● Rapidly adding features○ Help welcome and wanted!○ Github issues + pull requests○ https://github.com/RichardWarburton/lambda-

behave

Links & Info

Project Website:http://richardwarburton.github.io/lambda-behave/

Maven Central Coordinatescom.insightfullogic:lambda-behave:0.3

Bookhttp://tinyurl.com/java8lambdas

Training Websitehttp://java8training.com/

Bloghttp://insightfullogic.com

Questions?@richardwarburto