Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.rbezzi.playground.junit5;
- import com.google.common.base.CaseFormat;
- import org.junit.jupiter.api.BeforeEach;
- import org.junit.jupiter.api.DisplayName;
- import org.junit.jupiter.api.DisplayNameGeneration;
- import org.junit.jupiter.api.DisplayNameGenerator;
- import org.junit.jupiter.api.Nested;
- import org.junit.jupiter.api.Test;
- import java.lang.reflect.Method;
- import java.util.ArrayList;
- import java.util.List;
- import static org.junit.jupiter.api.Assertions.assertEquals;
- @DisplayName("A list")
- @DisplayNameGeneration(NestedJunit5Tests.CamelToSpaces.class)
- public class NestedJunit5Tests {
- private List<Integer> l = new ArrayList<>();
- @Test
- void whenIsEmptyHasSizeZero() {
- assertEquals(0, l.size());
- }
- @Nested
- class WhenHasOneElement {
- @BeforeEach
- void addOneElement() {
- l.add(100);
- }
- @Test
- void hasSize1() {
- assertEquals(1, l.size());
- }
- @Test
- void canGetElement0() {
- assertEquals(100, l.get(0));
- }
- }
- @Nested
- class WhenHasTwoElements {
- @BeforeEach
- void addTwoElements() {
- l.add(10);
- l.add(20);
- }
- @Test
- void hasSize2() {
- assertEquals(2, l.size());
- }
- @Test
- void getElement0and1() {
- assertEquals(10, l.get(0));
- assertEquals(20, l.get(1));
- }
- }
- static class CamelToSpaces extends DisplayNameGenerator.Standard {
- @Override
- public String generateDisplayNameForClass(Class<?> testClass) {
- return toSpaces(super.generateDisplayNameForClass(testClass));
- }
- @Override
- public String generateDisplayNameForNestedClass(Class<?> nestedClass) {
- return toSpaces(super.generateDisplayNameForNestedClass(nestedClass));
- }
- @Override
- public String generateDisplayNameForMethod(Class<?> testClass, Method testMethod) {
- return toSpaces(super.generateDisplayNameForMethod(testClass, testMethod));
- }
- private String toSpaces(String s) {
- return CaseFormat.UPPER_CAMEL.to(CaseFormat.LOWER_HYPHEN, s)
- .replaceAll("-", " ")
- .replaceAll("(\\D)(\\d)", "$1 $2")
- .replaceFirst("\\(\\)$", "");
- }
- }
- @Test
- void one() {
- assertEquals("has size 1 and", new CamelToSpaces().toSpaces("hasSize1And()"));
- }
- @Test
- void two() {
- assertEquals("get element 0 and 1", new CamelToSpaces().toSpaces("getElement0And1()"));
- }
- }
Add Comment
Please, Sign In to add comment