The randomizer extension for JUnit5 is just a convenient wrapper around easy-random, a sort of dumb ObjectMother for the JVM.
@ExtendWith(RandomizerExtension.class)
class CreateOrderUseCaseImplTest {
@Random
private MyObject randomField;
//...
@Test
void shouldNotCreateOrder_WhenOrderTypeIsMissing(@Random Order newOrder) {
// given
newOrder.setType(null);
// when
createOrderUseCase.execute(newOrder);
// then
verify(orderRepository, never()).save(any());
}
}
@Test
void givenItemListTooLong_thenReturnBadRequest(
@Random(type=ItemDto.class, size=30) List<ItemDto> manyItems) {
//...
}
@ExtendWith(RandomizerExtension.class)
class EntityApiControllerUpdateItemsTest implements CustomRandomFieldProvider {
@Override
public void registerCustomRandomizers(CustomRandomizerRegistry registry) {
registry.registerRandomizer(
StringField.named("state"),
StringRandomizerFactory.ofEnum(SubmissionState.class));
}
}