I've been working on Bob (), a lightweight builder generator for Java, and just added a feature I'm pretty excited about: Test only Defaults.
If you've used the , you know the drill you manually create (and maintain) a builder class that produces test objects with sensible defaults. It works, but you end up with a bunch of boilerplate and things to maintain.
Buildable.TestDefaults takes a different approach. You define a defaults class in `src/test` completely separate (will not be on your production classpath) from your buildable class in `src/main` and the defaults are automatically applied when the builder is constructed:
Goes in src/main and is blissfully unaware of the existence of test defaults:
@Buildable
public class Car {
private String color;
private int year;
}
Goes into src/test and is aware of the existence of test defaults:
@Buildable.TestDefaults(Car.class)
public class CarDefaults {
public static String color = "blue";
}