就个人而言,当使用单元测试测试 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);
}
Run Code Online (Sandbox Code Playgroud)
您可以在此处查看整个测试类:
或者这里的整个项目(这是一个简单的 Couchbase/Spring/API 示例)
https://github.com/scalabilitysolved/couchbase-java
归档时间: |
|
查看次数: |
3448 次 |
最近记录: |