Модульное и интеграционное тестирование с Couchbase

Недавно я настроил новый проект, в котором используется Spring-Data-Couchbase, и я совершенно не понимаю, как мне следует подходить к модульному и интеграционному тестированию здесь.

Как правило, с JPA я могу каким-то образом смоделировать свой репозиторий (при условии, что это похоже на кушетку с Spring), и это нормально для модульного тестирования, но обычно для JPA я подключаю базу данных в памяти и имею полный набор для тестирования интеграции. Есть ли способ сделать это с кушеткой?

Кроме того, если вы не против упомянуть какие-либо советы здесь, поскольку это мой первый крупный проект NoSQL :) Спасибо!


person Matthew Fontana    schedule 11.07.2016    source источник


Ответы (1)


К сожалению, Couchbase не работает в памяти. Для модульного тестирования вам придется издеваться над Couchbase API. Для этого существует проект CouchbaseMock: https://github.com/couchbase/CouchbaseMock.

Существует также возможность использовать бегун перед запуском теста. Вероятно, есть плагин maven, который позволит вам запустить Couchbase или образ Couchbase Docker.

person Laurent Doguin    schedule 11.07.2016
comment
Обратите внимание, что CouchbaseMock — это скорее проект, чем продукт. Мы в Couchbase используем его для собственного целенаправленного тестирования, но в конечном итоге мы тестируем и на реальном сервере. Он может не иметь всех функций. Пишите нам, если есть что-то, что вы хотели бы увидеть, так как у нас есть и другие компоненты. - person Matt Ingenthron; 11.07.2016
comment
@MattIngenthron Все еще работает над тем, чтобы полностью понять, как работает инструмент. Может быть, у вас есть образец или простой справочный проект, где я мог бы проверить реализацию? - person Matthew Fontana; 12.07.2016
comment
Взгляните на gocb (github.com/couchbase/gocb) или на использование в клиенте Python — github.com/couchbase/couchbase- python-client/blob/master/ и github.com/couchbase/couchbase-python-client/blob/master/ - person Matt Ingenthron; 13.07.2016
comment
Что касается CouchbaseMock, вы также можете взглянуть на его собственные тесты: github.com/couchbase/CouchbaseMock/blob/master/src/test/java/ — показывает, как создается макет и как подключается (старый) Java SDK. к этому! - person Mark Nunberg; 13.07.2016
comment
@MarkNunberg ссылка https://github.com/couchbase/CouchbaseMock/blob/master/src/test/java/org/couchbase/mock/client/ClientBaseTest.java не работает, может быть, эта хорошая: github.com/couchbase/CouchbaseMock/blob/master/src/test/java/ - person Jas; 01.10.2017
comment
Похоже, последняя активность в этой теме была около 2 лет назад - с тех пор кто-нибудь разработал базу данных в памяти для интеграционных тестов с весенней загрузкой? - person SnoopDougg; 21.11.2019
comment
Я думаю, вам лучше всего использовать проект тестового контейнера, который позволит вам запускать Couchbase во время ваших модульных тестов. См. testcontainers.org. - person Laurent Doguin; 22.11.2019