我试图使用mockito与scalatest,但我的mock总是返回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"))
}
可能mock本身不是null
,而是您在创建mock之后没有存根或mock正在使用的mock的成员。
如果您可以切换到Specs2,您会发现它为Mockito提供的DSL处理起来要容易得多。您仍然需要存根/模拟模拟的所有嵌套/附属成员,但如果您这样做,您的代码将少得多的噪音和冗长。