2013-03-20 69 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