我正在尝试使用带有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"))
}
答案 0 :(得分:0)
可能模拟本身不是null
,而是你没有存根或模拟你在创建后使用的模拟成员。
如果您可以切换到Specs2,您会发现它为Mockito提供的DSL非常容易处理。你仍然需要存根/模拟模拟的所有嵌套/辅助成员,但如果你这样做,你的代码将会更加嘈杂和冗长。