2011-04-07 28 views
7

我開始測試一般的應用程序,並且我想創建幾個測試以在Spring中學習Mockito。我一直在閱讀一些信息,但我有一些疑問我想問一下。在Spring 3中創建單一測試

  1. 我所看到的來測試的Mockito,他們與註釋類的測試:@RunWith(MockitoJUnitRunner.class)而Spring文檔中使用它@RunWith(SpringJUnit4ClassRunner.class)來。我不知道它們之間有什麼區別,以及哪個應該用於測試使用Mockito的Spring應用程序。
  2. 因爲我還沒有看到任何真正的應用程序測試過,所以我想知道開發人員會做的典型測試。例如,在一個典型的用戶CRUD應用程序(用戶可以創建,更新...)任何人都可以進行通常的測試。

謝謝。

回答

14
@RunWith(MockitoJUnitRunner.class) 

同意本聲明你想編寫一個單元測試。單元測試正在鍛鍊一個班級嘲笑所有的依賴。通常,您將注入聲明如下嘲笑依賴於你的測試用例:

@Mock 
private YourDependency yourDependencyMock; 

@RunWith(SpringJUnit4ClassRunner.class) 

春季亞軍是爲集成測試在這種類型的測試,你是(元件測試?)練習一大堆類,換句話說,你正在測試一個具有真正依賴性的類(用真實服務,DAO,內存數據庫等來測試控制器)

Y ou應該可能在你的應用程序中有這兩個類別。儘管建議進行更多的單元測試並且只進行少量集成測試,但是我經常發現自己更有信心寫幾乎只有集成測試。

關於你的第二個問題,你應該有:

  • 單元測試爲每個類(控制器,服務的DAO)分別與嘲笑所有其他類

  • 集成測試整個單一的CRUD操作。例如創建一個鍛鍊控制器,服務,DAO和內存數據庫的用戶。

+0

這是一個非常好的解釋,但有時候我只是想在同一個測試類中混合使用單元測試和集成測試......我如何獲得mockito注入功能和彈簧注入?我可以使用@RunWith註釋嗎? – 2011-06-09 22:48:00

+0

混合Spring和Mockito是完全可能的。基本上你讓Spring創建並注入你的模擬。看到這個問題:http://stackoverflow.com/questions/2457239 – 2011-06-10 06:27:50

+0

是的,但採用這種方法,你不會使用@RunWith(MockitoJUnitRunner.class) – 2011-07-06 03:45:10

相關問題