Старое содержимое этого ответа теперь устарело . См. Другие ответы на основе MutationObserver
.
Я попробовал его pojo, и это, кажется, работает. Я должен был изменить Ваш код немного. Я думаю, что Ваши интерфейсы были немного выключены, но я не уверен.
Я предположил, что "Нечто" было конкретным типом, но если не я могу сделать еще некоторое тестирование на Вас.
Я просто записал основной метод протестировать это. Я надеюсь, что это помогает!
public static void main(String[] args){
FooRepository fooRepository = new FooRepositoryImpl();
fooRepository.delete(new Foo("Bar"));
}
public class Foo
{
private String value;
public Foo(String inValue){
super();
value = inValue;
}
public String toString(){
return value;
}
}
public interface Repository<E>
{
public void delete(E entity);
}
public interface FooRepository extends Repository<Foo>
{
//other methods
}
public class AbstractRespository<E> implements Repository<E>
{
public void delete(E entity){
System.out.println("Delete-" + entity.toString());
}
}
public class FooRepositoryImpl extends AbstractRespository<Foo> implements FooRepository
{
@Override
public void delete(Foo entity){
//do something before deleting the entity
System.out.println("something before");
super.delete(entity);
}
}
Можно ли записать модульный тест против класса FooRepository просто с помощью него в качестве POJO. Если бы это работает как ожидалось затем, я не знаком ни с какой причиной, почему она функционировала бы по-другому в контейнере.
Я подозреваю, что существует что-то еще продолжение, и, вероятно, будет легче отладить при тестировании его как POJO.