Миграция из TestNG в JUnit4 - работа с методами stati c, необходимыми для аннотации junitparams @Parameters - PullRequest
0 голосов
/ 29 апреля 2020

У меня проблема с переносом некоторых тестов из TestNG в JUnit.

Вот как выглядели тесты до того, как я пытался их перенести:

@Autowired
private ContentRepository contentRepository;

@DataProvider(name = "getAllPossibleContents")
private Object[][] getAllContents() {
    List<Object[]> allContents = new ArrayList<>();
    contentRepository.findAll().forEach(content -> allContents.add(new Object[] {content.getId()}));
    Object[][] result = new Object[allContents.size()][];
    return result;
}

@Test(dataProvider = "getAllPossibleContents")
public void testAddingContext(Long contentId) {
    Content content = contentRepository.findOne(contentId);
    assertEquals(10, content.getContext().size());
    assertTrue(content.getContext().contains(somethingNotImportant));
}

Я изменился код:

@Autowired
private ContentRepository contentRepository;

public static Object[][] getAllContents() {
    List<Object[]> allContents = new ArrayList<>();
    contentRepository.findAll().forEach(content -> allContents.add(new Object[] {content.getId()}));
    Object[][] result = new Object[allContents.size()][];
    return result;
}

@Test
@Parameters(method = "getAllContents")
public void testAddingContext(Long contentId) {
    Content content = contentRepository.findOne(contentId);
    assertEquals(10, content.getContext().size());
    assertTrue(content.getContext().contains(somethingNotImportant));
}

Проблема в том, что я получаю сообщение об ошибке из своей IDE:

Cannot make a static reference to the non-static field contentRepository

И для меня это очевидный метод, который должен предоставлять данные c.

Есть ли возможность изменить этот код, чтобы я мог использовать contentRepository с параметризованными тестами? Я немного читал об использовании классического подхода JUnit (@RunWith(Parametrized.class)), но кажется, что методы предоставления данных в этом подходе должны быть также c ...

...