Мне было интересно, можно ли инициализировать тестовые данные, реализовав интерфейс TestExecutionListener и используя beforeTestClass и afterTestClass для загрузки/удаления данных. Тестовые данные будут доступны в плоском файле, и я хотел бы, чтобы местоположение файла данных было частью аннотации тестового класса.
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:spring/test-dao.xml"})
@TestExecutionListeners(
{
DependencyInjectionTestExecutionListener.class,
InsertTestDataExecutionListener.class
})
@DataSetLocation("classpath:data/test-dao-dataset.xml")
public abstract class AbstractDaoTests {
public List testdata....
}
В приведенном выше псевдокоде InsertTestDataExecutionListener реализует интерфейс TestExecutionListener и в методе beforeClass получает расположение набора данных из аннотации. Я пытаюсь выяснить, как я могу настроить содержимое свойства «testdata», используя TestContext.
public class InsertTestDataExecutionListener implements TestExecutionListener {
public void beforeTestClass(TestContext aContext) {
DataSetLocation dsLocation = aContext.getTestClass().getAnnotation(
DataSetLocation.class
);
//Load the contents of the file using the dataset location.
?? How to set the property of 'testdata' from the Abstract class
}
}
Должен ли я использовать отражение для выполнения работы?