与Mockito和Scalatest匹配的参数
我试图将mockito与scalatest一起使用,但是我的mock总是返回null。这是一个简单的测试,但是对post的调用并没有返回我期望的对象(someObj3),而是返回null。知道发生了什么吗?Scala中是否有一个等价的API,允许我在创建期望时传递特定类或类型的任何参数与Mockito和Scalatest匹配的参数,scala,junit,mockito,scalatest,Scala,Junit,Mockito,Scalatest,我试图将mockito与scalatest一起使用,但是我的mock总是返回null。这是一个简单的测试,但是对post的调用并没有返回我期望的对象(someObj3),而是返回null。知道发生了什么吗?Scala中是否有一个等价的API,允许我在创建期望时传递特定类或类型的任何参数 @Test def mockTestt = { var mock:Someclass = Mockito.mock(classOf[Someclass]); systemUnderTest.setSomeCl
@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"))
}模拟本身可能不是
null
,但您没有在创建模拟后对正在使用的模拟的成员进行存根或模拟
如果您可以切换到Specs2,您会发现它为Mockito提供的DSL非常容易处理。您仍然需要对mock的所有嵌套/辅助成员进行存根/模拟,但如果这样做,代码的噪音和冗长程度将大大降低。您在何处/如何定义
someObj3
?如果没有这个定义,它可能会工作,并且因为没有定义/设置someObj3
而返回null。是的,mock正在做它的工作,但是我使用的参数没有通过相等性测试。我现在已经能够解决了。谢谢