Мне нужно протестировать систему, которая работает одинаково с форматами файлов YAML и JSON. Я написал несколько модульных тестов для базы данных, но хочу запустить их в обоих форматах. Все, что мне нужно изменить, - это путь к тестам. Я использую Java 8 и org.junit.jupiter.
import static org.junit.jupiter.api.Assertions.*;
public class DatabaseTests {
//Need to re-test for "src\\test\\java\\backend\\database\\testDB.yaml"
private final static String TEST_DB_JSON = "src\\test\\java\\backend\\database\\testDB.json";
private static byte[] testFileState;
@BeforeAll
static void setUp() {
try {
testFileState = Files.readAllBytes(Paths.get(TEST_DB_JSON));
reloadDatabase();
} catch (IOException e) {
e.printStackTrace();
}
}
@AfterEach
void resetFile() {
try (FileOutputStream fos = new FileOutputStream(TEST_DB_JSON)) {
fos.write(testFileState);
} catch (IOException e) {
e.printStackTrace();
}
reloadDatabase();
}
//A bunch of unit tests
Я не хочу просто копировать и вставлять весь класс и изменять только одну переменную, но я не могу понять, как это сделать, сделать класс абстрактным или что-то. Тесты работают одинаково для обоих файлов (как и код моей базы данных), и оба файла содержат одни и те же данные теста.