У меня есть служба, использующая Джерси, которая пишет/читает из файла JSON, и у меня есть тестовый файл, расширяющий класс JerseyTest для тестирования этого сервиса.Различное поведение в тестах Джерси
То, что я пытаюсь сделать, - это при запуске теста писать или читать в другом файле (с именем «_test» в имени). Таким образом, у меня нет значений, измененных из основного файла.
Файл быть инстанс в методе @PostConstruct подобное:
@PostConstruct
public void init() {
try {
jsonFile = new NewsJson(); // Need to have a different behavior for testing
} catch (IOException ioe) {
LOGGER.error("Error creating file: " + ioe.getMessage());
}
}
То, что я пытался это вызвать метод @post, что изменить переменную jsonFile, активируя сочинительство в другом файле. Проблема в этом решении - это метод @PostConstruct, называемый каждым запросом.
Как я могу изменить это поведение? Есть ли другая аннотация для инициализации сервисов с использованием Джерси?
Действительно ли вы хотите инициализировать файл в конструкции? Почему вы не можете создать этот файл в своей самой операции POST? Вы можете отличать тестовые и производственные запросы на основе некоторого HTTP-заголовка и изменять создание jsonFile? – Optional