我有一個基於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。如果一個人不能打開一個桶,整個事情的目的是不清楚的。 –