使用Couchbase进行单元测试和集成测试

9
我最近搭建了一个使用Spring-Data-Couchbase的新项目,但是我完全不知道如何处理单元测试和集成测试。通常情况下,对于JPA,我可以以某种方式模拟我的Repository(假设这在Spring中与couchbase类似),这对于单元测试是可以的,但是通常对于JPA,我会连接上内存数据库并有一个完整的集成测试套件。那么是否有方法可以在couchbase中实现这一点呢?此外,如果您不介意提供任何技巧,因为这是我的第一个主要NoSQL项目 :) 谢谢!
1个回答

3

很遗憾,Couchbase不支持内存运行。对于单元测试,您需要模拟Couchbase的API。有一个CouchbaseMock项目可以方便地实现这一点:https://github.com/couchbase/CouchbaseMock

在启动测试之前,还可以使用运行器。可能有一个Maven插件,允许您运行Couchbase或Couchbase Docker镜像。


1
请注意,CouchbaseMock更像是一个项目而不是一个产品。我们在Couchbase中使用它来进行有针对性的测试,但最终我们也会在真实服务器上进行测试。它可能没有所有功能。如果您想看到某些功能,请与我们联系,因为我们还有其他组件。 - Matt Ingenthron
请查看gocb(https://github.com/couchbase/gocb)或在Python客户端中的使用- https://github.com/couchbase/couchbase-python-client/blob/master/couchbase/tests/base.py#L113和https://github.com/couchbase/couchbase-python-client/blob/master/couchbase/mockserver.py。 - Matt Ingenthron
2
关于CouchbaseMock,您还可以查看其自己的测试:https://github.com/couchbase/CouchbaseMock/blob/master/src/test/java/org/couchbase/mock/client/ClientBaseTest.java - 这显示了如何实例化模拟对象以及如何将(旧的)Java SDK连接到它! - Mark Nunberg
@MarkNunberg 这个链接 https://github.com/couchbase/CouchbaseMock/blob/master/src/test/java/org/couchbase/mock/client/ClientBaseTest.java 已经失效了,也许这个链接可以使用:https://github.com/couchbase/CouchbaseMock/blob/master/src/test/java/com/couchbase/mock/clientv2/ClientTest.java - Jas
1
我猜您最好使用test-container项目,这样可以在单元测试期间运行Couchbase。请参见https://www.testcontainers.org/。 - Laurent Doguin
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接