2012年11月14日

用 Mockito 的 injectMocks

官方網站上面沒找到, google 一下看到這篇 http://gladkowski.blogspot.tw/2011/06/mocking-objects-and-injecting.html

常常會遇到待測目標是用 @Resource, 或者其他方法拿到的, 測試的時候一般會想要排除這些依賴項目而嘗試寫假物件來提供更一致的行為; 這邊是要提用 Mockito 時候應該怎麼做.

首先必須 import 以下項目:


import org.mockito.Mock;
import org.mockito.InjectMocks;
import org.mockito.runners.MockitoJUnitRunner;
import org.junit.runner.RunWith;




在你的test class 宣告前面放上

@RunWith(MockitoJUnitRunner.class)


假設欲測的 class 叫做 target, 需要 inject 的 resource 叫做 dependent; 那麼在 class 的 scope, 可以宣告


@Mock
private Dependent dependent;
@InjectMocks
Target target = new Target();


之後你就可以跟原本一樣使用 dependent 來達成測試的需求了, 例如


when(dependent.func(anyString()).thenReturn("Hello");
        assertEquals("Hello", target.getStringFromDependentFunc());




2012年9月14日

Resize(Shrink) image size

大部份 resize VM image的文章都是講怎麼 expand, 讓既有的VM繼續長大; 這次我的需求是要從一個VM刪除掉多餘的資料以作出base image.

2012年7月2日

install SVN in OSX

因為新公司使用subversion 做 revision control, 很自然地找到 eclipse 的 subversion plug-in.  結果狀況還是東缺西缺的.
參考網路搜尋到的文章, 從eclipse -> help -> install new software, 找svn然後裝起來.
看起來版本有問題, 抓到的東西跟 repository上面的差很多....
上了subclipse的官網去撈, 確定版本之後抓下來, 準備要撈source的時候跳了一個 javahl not found的error..... google了一下, 有人說用macport裝 subversion就可了, 於是去找了brew上面的解法, 實驗之後仍然出現了java hl 的問題, 不過 ignore 之後 code好像抓下來了..... 來確認一下....