与Mockito和Scalatest匹配的论据

时间:2013-03-20 14:04:15

标签: scala junit mockito scalatest

我正在尝试使用带有scalatest的mockito但是我的模拟总是返回null。它是一个简单的测试但是对post的调用没有返回我期望的对象(someObj3)而是返回null。有什么想法发生了什么?还有Scala中的等效API,它允许我在创建期望时传递特定类或类型的任何参数吗?

@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"))

}

1 个答案:

答案 0 :(得分:0)

可能模拟本身不是null,而是你没有存根或模拟你在创建后使用的模拟成员。

如果您可以切换到Specs2,您会发现它为Mockito提供的DSL非常容易处理。你仍然需要存根/模拟模拟的所有嵌套/辅助成员,但如果你这样做,你的代码将会更加嘈杂和冗长。