Допустим, я создал модульный проект в maven
с интерфейсом api
, определенным в myproject-api
, и двумя реализациями этого интерфейса в myproject-impl
и myproject-impl2
.
myproject-api
myproject-impl
myproject-impl2
Я хочу создать один набор тестов, который мог бы работать с обеими реализациями. Конечно, в будущем я мог бы добавить еще одну реализацию, и я бы также хотел протестировать ее с помощью этого общего набора тестов.
Что было бы наилучшим способом для выполнения такого рода общих тестов с junit?
Пример интерфейса:
public interface SmallLettersSource {
String read();
}
Реализации:
class ASource implements SmallLettersSource {
@Override
public String read() {
return "a";
}
}
class BSource implements SmallLettersSource {
@Override
public String read() {
return "b";
}
}
И тест:
@Test
void test() {
assert(source.read().equals(source.read().toLowerCase()));
}