2012-04-23 245 views
0

我正在嘗試使用Mockito來測試我的GWTP應用程序。使用Mockito進行GWTP單元測試

我想模擬我的View,Proxy,Placemanager和eventbus。 我試過使用 @Mock AbcView abc;

和Abcview abc = Mockito.mock(AbcView.class);

但是每次模擬視圖都被實例化爲null。 我該如何解決這個問題? 一旦視圖被嘲弄,我將能夠繼續測試我的演示者類,因爲演示者的構造函數具有以下代碼: getView()。setUiHandlers(this);

所以直到視圖被正確實例化爲空指針異常被拋出。

回答

0

您是否使用跑步者MockitoJUnitRunner運行測試?

+0

或者運行靜態方法:'MockitoAnnotations.initMocks()' – 2012-04-23 20:32:37

+0

@Sydney:我確實使用MockitoJunitRunner運行測試。 – Anish 2012-04-24 06:04:30

+0

嘗試運行我發佈的ExampleTest,以查看是否一切正常,並通過簡單的測試。 – Sydney 2012-04-24 10:02:23

0

除了@悉尼的響應,還需要Ø確保AbcView.class是不是最終的。我忘記了最終的類是否會導致null或運行時錯誤,但這可能會導致某種意外行爲 - 這種或那種方式,嘲笑不起作用。如果這個類不是最終的,你需要確保你在這個模擬中存儲的任何方法都不是最終的。

+0

這兩個類和方法都不是最終的 – Anish 2012-04-24 06:05:56

+0

嘗試包括一些簡單的代碼片段,如果您有一個,測試方法,一般對象定義和可用的演示者構造函數,肯定會包含@Setup。哦,你正在使用什麼版本的mockito。最新版本支持構造函數注入,但早期版本不支持。 – 2012-04-24 17:48:54

+0

我正在使用Mockito 1.9.0。我忘記提到的一件事是我用GWTTestCase擴展我的Testclas,所以我使用gwtSetup方法來做測試設置。這會有什麼不同嗎?我想我的測試只是GWTJunit測試用例。 – Anish 2012-04-25 06:11:38