@janschaefer janschaefer released this Jan 6, 2017 · 57 commits to master since this release

Switch from cglib to ByteBuddy

The internal JGiven interception mechanism was changed to use ByteBuddy instead of cglib. The main reason for this change is support for Android (see below).
From a users perspective, JGiven should behave as before.

Backwards Incompatible Changes

Spring Integration

In order to fix issue #259 the Spring integration was largely rewritten. If you only had used the @EnableJGiven and @JGivenStage annotations, nothing should change.
If you had a custom Spring configuration for JGiven you have to change the following:

  • The classes SpringStepMethodInterceptor and JGivenStageAutoProxyCreator do not exist anymore, you have to remove all references
  • As a replacement the new class JGivenBeanFactoryPostProcessor exists now. You have to register this bean in your Spring configuration

New Features

  • Tags with the same name, but different packages are now correctly distinguished #242 (thanks to ahus1)
  • Scenario states can be marked as required to make scenarios fail quickly and with a clear message if the state hasn't been provided #255

Experimental JUnit 5 Support

JGiven can now be used together with JUnit 5, by using the JGivenExtension. Refer to the user guide for additional details. #277

Experimental Android Support

There is a new experimental module called jgiven-android, which enables JGiven support for tests executed on the device or simulator.
This makes it possible to combine JGiven with Espresso tests and even integrate screenshots in the JGiven report.
For details of how to setup and use the Android support have a look at the jgiven-android-test project.

Also see #258

Special thanks to orginx

Fixed Issues

  • Spring Integration: Nested Steps are now supported when using Spring #259