我有一个基于java的数据访问层与couchbase交互。 为了将单元测试应用到这一层,我想模拟couchbase。嘲笑Couchbase
浏览我遇到的网this project它也承载于github。 我想使用它,但缺少一些基本的例子。
也许有人已经尝试过它,可以提供我一些在Java中的基本用法?
感谢
我有一个基于java的数据访问层与couchbase交互。 为了将单元测试应用到这一层,我想模拟couchbase。嘲笑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);
}
您可以查看整个测试类的位置:
还是这里的整个项目(这是一个简单的Couchbase /春/ API的例子)
坦克,这是一个很好的方法,但考虑到这一点,我仍然想知道如何使用couchbase模拟项目。 – forhas
嘿@forhas如果这回答你的问题,你会把它标记为接受?谢谢! – scalabilitysolved
该项目,同时通过Couchbase正式支持是编织死从Java未来的一年左右已经因为这个错误:https://github.com/couchbase/CouchbaseMock/issues/11。如果一个人不能打开一个桶,整个事情的目的是不清楚的。 –