2015-03-29 2 views
3

Я довольно смущен об модульном тестировании Express REST API с использованием мангуста. Я слышал о супертесте, силоне, чае и мокке.Тестирование модулей/интеграции Express REST API, mongoose, mocha, sinon, chai, supertest

Я хочу писать тесты на:

1) Проверьте интерфейс API:

Создать Supertest сервер и делать запросы на него (GET/пользователей, POST/пользователей, например) и проверить, что оно называет правильные маршруты.

2) Тест мангуст запросы:

Когда маршрут называется, я хочу, чтобы проверить, что правая функция мангуст называется (найти, findById) и что она возвращает правильные данные (поддельные данные), что-то например:

, когда вызывается User.findId, возвращает поддельный пользователь (данные, определенные в beforeEach). Это то, что для синонимов?

3) Тесты интеграции: Создайте тестовую базу данных (созданную в тестовом прогоне), заполните ее и очистите, когда тесты закончены. Выполнять вызовы API (пользователи GET, пользователи PUT/1202082, DELETE users/1202082 ...) на сервере суперсервера и проверять, что правильные данные считываются, создаются, обновляются, удаляются ...

Это путь идти ? Простые примеры для каждого случая были бы очень приятными!

ответ

1

Если то, что вы хотите тест static's и method's определенной модели Mongoose, я бы порекомендовал вам использовать sinon и sinon-mongoose. (Я думаю, он совместим с chai)

Таким образом, вам не нужно будет подключаться к Mongo DB и легко возвращать поддельные данные.

Вы можете найти рабочие (и простые) примеры на sinon-mongoose репо.

Смежные вопросы