Я близок к завершению ORM для RethinkDB на Python, и я застрял в написании тестов. В частности, при использовании save()
, get()
и delete()
операций. Каков рекомендуемый способ проверить, выполняет ли мой ORM то, что он должен делать при сохранении или удалении или получении документа?Тестирование ORM для RethinkDB
Прямо сейчас, для каждого теста в моем пакете я создаю базу данных, заполняю ее всеми таблицами, необходимыми тестовыми моделями (это занимает много времени, почти 5 секунд/тест!), Запустите операцию на моей модели (например: save()
), а затем вручную запустить запрос к базе данных (используя драйвер Python от RethinkDB), чтобы узнать, все ли обновлено в базе данных.
Теперь я чувствую, что это не так; возможно, есть еще один способ написать эти тесты или, возможно, я смогу разработать тесты, даже не выполнив столько запросов к базе данных. Любая идея о том, как я могу улучшить это или предложение о том, как это должно быть действительно сделано?
Каждый набор тестов будет иметь свои собственные модели, следовательно, их собственные таблицы, поэтому я не могу и не должен иметь одну и ту же базу данных/таблицы для всех моих тестов. Кроме того, я запустил RethinkDB, а затем запустил все тесты, я не думаю, что это хорошая ставка, чтобы начать и остановить RethinkDB для каждого теста - убой производительности, вероятно, будет таким же в моем текущем случае. – linkyndy
Одним из способов получить немного времени было бы просто очистить таблицы, а не отбрасывать/воссоздавать их. Я тоже поддерживаю ORM, и я просто бросаю/создаю таблицы, и я должен признать, что это немного медленно. – neumino
Я знаю, и ты отлично справился с этим! :) Хорошо, тогда хорошо знать, что у коллег-кодеров одинаковый подход ... И каково ваше мнение по моей другой проблеме, касающейся метода тестирования? Как вы проверяете, выполняют ли ваши действия модели то, что они должны делать? – linkyndy