2013-03-20 60 views
0

我想用scalatest使用mockito,但是我的模擬總是返回null。它是一個簡單的測試,但是對post的調用沒有返回我期望的對象(someObj3),而是返回null。任何想法發生了什麼?在Scala中是否還有一個等效的API,在創建期望時允許我傳遞特定類或類型的任何參數?與Mockito和Scalatest匹配的參數

@Test def mockTestt = { 
var mock:Someclass = Mockito.mock(classOf[Someclass]); 
systemUnderTest.setSomeClass(mock) 

when(mock.post(someObj1,someObj2)) 
     .thenReturn(someObj3) 

var status:String = systemUnderTest.isOpen(someObj1, someObj2) 
Assert.assertTrue(status.equalsIgnoreCase("Enabled")) 

}

+0

你在哪裏/如何定義'someObj3'?如果沒有這個定義,它可能會工作,並返回null來不定義/設置'someObj3'。 – Walls 2013-03-20 19:55:17

回答

0

大概模擬本身並不null,而是你沒有存根或嘲笑的是模擬它的創建後,您使用的成員。

如果您可以切換到Specs2,您會發現它爲Mockito提供的DSL極其容易處理。你仍然需要對mock的所有嵌套/附屬成員進行存根/模擬,但是如果你這樣做的話,你的代碼將不會很嘈雜和冗長。

+0

是的模擬正在做它的工作,但我使用的論點沒有通過平等測試。我現在已經能夠解決了。謝謝 – cduggan 2013-03-21 07:36:52