Модульное тестирование методов базы данных Spring 3 - PullRequest
0 голосов
/ 06 октября 2010

У меня есть абстрактный класс, который определяет методы базы данных, такие как вставки и обновления, и конкретный класс, который его реализует.Конфигурации базы данных (dataSource, DatabaseTarget и т. Д.) Определяются как bean-компоненты в файле context.xml.

База данных с ее методами работает в Controller, когда я использую аннотации Spring 3 от

private AbsractClass a;

Конструктор:

@Autowired
public Controller(AbstractClass a) {
    this.a =a;
}

... и метод получения для.

Вызов методов базы данных выполняется

getA().insertValues();

Но я хотел бы написать Junitтесты для моих методов.Есть ли пример для такой ситуации?Я гуглил часами.

1 Ответ

1 голос
/ 06 октября 2010

Если вы хотите протестировать методы вашего контроллера, не касаясь базы данных (это правильный путь), создайте новый класс, расширяющий AbsractClass, и передайте его в качестве аргумента вашему классу контроллера, например:

CustomerController controller= new CustomerController(new InMemoryCustomerDao());
//call your actions and assert, all calls to the database will hit the InMemoryDao.

Другой способ - использовать Mock Object , если вы не хотите создавать дополнительные фальшивые классы в своем проекте или вам нужно утверждать, что эти аргументы вызываются правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...