Можно ли проверять, что модель записала в БД, средствами самой модели?
Я разрабатываю через тестирование модель (Queue), и, в частности, ее метод queue.add (item). Структура теста:
- очищаем базу
- вызываем queue.add(item)
- убеждаемся, что item лежит в БД.
Есть две опции для первого и последнего пунктов:
а) очистить таблицу вручную, проверять так же прямым запросом
б) очистить очередь методом queue.clear(), проверить методом queue.find().
Первый выглядит более тщательным, но гораздо более сложен и порождает дубликацию между кодом и тестом. Второй - непонятно, что именно тестирует, и полагается на методы, которых еще нет, но гораздо более краток и менее хрупок.
В чем концептуальная разница между этими двумя способами? А может, есть еще какой-то вариант? Что предпочесть и в какой ситуации? Спасибо.