Я выполняю тестирование Junit
в Spring
и в своем тестовом классе мне нужно использовать некоторые тестовые данные.Могу ли я использовать TestNG DataProvider в контексте Spring, то есть в моем тестовом коде, который запускается с помощью SpringJUnit4ClassRunner
Я искал Google и Есть много способов, как - Parameterized
класса, TestNG Data
Провайдеров, [junit-dataprovider][1]
и т.д.
я хоть попробовать TestNG поставщик данных и создал простой класс для моих тестовых данных, как показано ниже:
@ContextConfiguration(classes = TestConfiguration.class)
public class TestNgDataProvider extends AbstractTestNGSpringContextTests {
private static final Logger LOGGER = LoggerFactory.getLogger(TestNgDataProvider.class);
@DataProvider(name = "invoices")
public static Object[][] dataProviderMethod() {
return new Object[][]{
{"201628JP00006097", "201628JP00006098"},
};
}
@Test(dataProvider = "invoices")
public void testParameterMethod(String invoiceId1, String invoiceId2) {
LOGGER.info("Start test");
LOGGER.info("Test data is: {}, {}", invoiceId1, invoiceId2);
}
}
Однако теперь, когда я пытаюсь использовать этот поставщик в моем тестовом классе я получаю exception
говоря: java.lang.Exception: нет Runnable методы
Мой тестовый класс использует runWith SpringJUnit4ClassRunner
. Кто-нибудь знает, как решить эту проблему.
import org.junit.After;
import org.junit.Before;
import org.junit.runner.RunWith;
import org.springframework.boot.test.SpringApplicationConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.testng.annotations.Test;
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(TestConfiguration.class)
public class TestLax extends LaxBaseTest {
@Test (dataProvider="invoices", dataProviderClass=TestNgDataProvider.class)
public void testLarsTamara(String invoiceId1, String invoiceId2) throws Exception {
LOGGER.info("Test data is: {}, {}", invoiceId1, invoiceId2);
File file = larsRemote.runLars();
readAndVerifyLarsFile(file);
}
}