when assertions fails, the message returned to the user can be consfusing
using the method describedAs, allows you to pass in a message and possible values to give a better output to help the user make changes to pass the test
You will need to use this at the beginning of the assertion
assertThat(false).describedAs("Message to help with passing test").isTrue();
public class CoffeeAssert extends AbstractAssert<CoffeeAssert, Coffee> {
public CoffeeAssert(Coffee actual) {
super(actual, CoffeeAssert.class);
}
public static CoffeeAssert assertThat(Coffee actual) {
return new CoffeeAssert(actual);
}
public CoffeeAssert hasType(Coffee.Type type) {
isNotNull();
if (actual.getType() != type) {
failWithMessage("Expected the coffee type to be <%s> but was <%s>", type, actual.getType());
}
return this;
}
// hasStrength(Strength) omitted ...
public CoffeeAssert isNotDecaf() {
isNotNull();
if (actual.getStrength() == Coffee.Strength.DECAF) {
failWithMessage("Expected a coffee but got decaf!");
}
return this;
}
}