【问题标题】:Argument matching with Mockito and Scalatest与 Mockito 和 Scalatest 的参数匹配
【发布时间】:2013-03-20 14:04:14
【问题描述】:

我正在尝试将 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"))

}

【问题讨论】:

  • 您在哪里/如何定义someObj3?如果没有该定义,它可能会正常工作并返回 null 以表示未定义/设置 someObj3

标签: scala junit mockito scalatest


【解决方案1】:

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

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

【讨论】:

  • 是的,模拟正在完成它的工作,但是我使用的参数没有通过相等性测试。我现在已经能够解决了。谢谢
猜你喜欢
  • 2014-05-21
  • 1970-01-01
  • 1970-01-01
  • 2011-11-21
  • 2016-05-14
  • 2015-06-22
  • 2013-05-03
  • 1970-01-01
  • 2012-09-24
相关资源
最近更新 更多