Использование TestSuites в JUnit5 - PullRequest
0 голосов
/ 09 марта 2020

Мне нравится тестировать похожие типы классов с одним и тем же кодом, поэтому я не забываю делать что-то, поэтому, используя JUnit4 (технически Junit3), я создал классы следующим образом:

@RunWith(AllTests.class)
public class MyPojoTest {

    public static TestSuite suite() {
        return PojoTestSuite.forPojoClass(MyPojo.class)
            // test Serializable is implemented correctly
            .serializable()
            // test Comparable is implemented correctly
            .comparable()
            // etc.
            .cloneable()
            // creates a junit.framework.TestSuite
            .create();
    }
}

public class PojoTestSuite {

    public static PojoTestSuite forPojoClass(Class<?> pojoClass) {
        return new PojoTestSuite(pojoClass);
    }

    public TestSuite create() {
        final TestSuite suite = new TestSuite();

        suite.addTest(new EqualsTest());
        suite.addTest(new HashCodeTest());

        if (this.serializable) {
            suite.addTest(new SerializeableTest());
        }
        if (this.cloneable) {
            suite.addTest(new CloneableTest());
        }
        if (this.comparable) {
            suite.addTest(new ComparableTest());
        }
        return suite;
    }

    // getters and setters, constructor, ...
}

Однако я не был Не могу реализовать что-то подобное в чистом JUnit4, и теперь в JUnit5 я тоже не могу найти ничего подобного.

Есть ли способ использовать наборы тестов для динамического создания набора тестов? Я бы хотел, чтобы тесты были как можно меньше, потому что сбой "testEqualsReturnsTrueForSameObject()" гораздо полезнее, чем сбой "testPojo()".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...