Проблемы с миграцией из TestNG в JUnit 4 - junitparams работает неправильно - PullRequest
0 голосов
/ 28 апреля 2020

Я переносу тесты в приложении из TestNG в Junit 4.

В подходе TestNG использовалась аннотация @DataProvider. Я добавил junitparams к pom.xml, и @Parameters работает в обычных тестах, как и ожидалось.

Но у меня есть другой набор тестов, использующий DBUnit, где этот подход терпит неудачу.

Я изменил методы предоставления данных как обычно:

public static Object[][] getNewContent() {
    Object[][] result = someMethodToGetData();
    return result;
}

@Test
@Parameters(method = "getNewContent")
public void createNewContentTest(Class<? extends Content> clazz) throws Exception {
    User u = getUser();
    Content newContent = clazz.newInstance();
    newContent.setOwner(u);
    Content savedContent = contentRepository.save(newContent);
    assertNotNull(savedContent.getId());
}

Когда я запускаю тест, я получаю:

java.lang.RuntimeException: Could not invoke method: getNewContentClasses defined in class class com.myapp.content.test.ContentEntityTest so no params were used.

Дополнительная информация:

Тест подпись класса выглядит следующим образом:

@RunWith(JUnitParamsRunner.class)
public class ContentEntityTest extends DbunitTestParent

И DbUnitTestParent выглядит следующим образом:

@ContextConfiguration(classes = DbUnitApplication.class)
@RunWith(Suite.class)
@SuiteClasses({ ContentEntityTest.class, ContentTest.class })
public class DbunitTestParent extends AbstractTransactionalJUnit4SpringContextTests {

    @PersistenceContext
    private EntityManager em;

    @After
    public final void flush() {
        em.flush();
    }

}

Чего мне не хватает?

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