Tests written with commented GIVEN, WHEN and THEN regions can be transformed by actually wrapping code within basic blocks called issues.
This can occur in a nested fashion.
Start with Test|TEST, that can wrap any issue.
Given|GIVEN can wrap Given|GIVEN, When|WHEN; or Then|THEN issues.
When|WHEN can wrap When|WHEN or Then|THEN issues.
Then|THEN can only wrap Then|THEN issues.
The Kotlin implementation supports 'suspend' functions: for any issue, there are two ("suspendable" and "nonsuspendable") kinds, that can be toggled between, while in the same foremost issue.
Each issue can be labelled, and return values from corresponding code blocks can be referred to (or addressed, by nesting level), and searched using labels; wildcard matching is available too.
Unlabelled given/then/when are not searchable, their return values are stored as the foremost issue's pending result.
Supporting coroutines for unit or instrumented tests in Android is under development.
Features
- test
- test rule
- GIVEN/WHEN/THEN
- searchable
- kotlin
- suspend
- DSL