gpt4 book ai didi

java - 模拟沙发床

转载 作者:搜寻专家 更新时间:2023-10-31 20:11:39 24 4
gpt4 key购买 nike

我有一个与 Couchbase 交互的基于 Java 的数据访问层。为了对该层应用单元测试,我想模拟 Couchbase。

浏览我遇到的网络this project也托管在 GitHub 中.我想使用它,但缺少一些基本示例。

也许有人以前尝试过,可以向我提供 Java 中的一些基本用法?

最佳答案

就个人而言,在使用单元测试测试 Couchbase 时,我不使用这些项目中的任何一个,我只是使用 Mockito 来模拟 Couchbase 调用。

理想情况下,您对 Couchbase 的所有调用都很好地封装到 DAO 中。 Mockito 允许我返回我期望的 json 有效负载等,但同时我可以模拟超时和其他异常。

作为一个简单的示例,您检查如果 Couchbase 在添加操作期间抛出异常会发生什么情况,您将执行以下操作(我期望运行时异常,因为我捕获了较早的异常并重新抛出,因为它无法恢复示例):

@Test(expected = RuntimeException.class)
public void testSaveUserFailsOnAddDueToTimeout() {
when(couchbase.incr(anyString(), anyInt())).thenReturn(0L);
when(couchbase.add(anyString(), anyObject())).thenThrow(InterruptedException.class);
this.userDao.saveUser(SOURCE);
}

你可以在这里查看整个测试类:

https://github.com/scalabilitysolved/couchbase-java/blob/master/src/test/java/com/scalabilitysolved/couchbase/dao/UserDaoTest.java

或者整个项目在这里(这是一个简单的 Couchbase/Spring/API 示例)

https://github.com/scalabilitysolved/couchbase-java

关于java - 模拟沙发床,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23648108/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com