在实际功能调用中使用模拟函数返回值



是否可以在真实函数调用中使用模拟函数?这两个功能都在同一对象中。因此,例如,如果我有

obj A {
  def mockThis(value: Int): Int = {
    value*5
  }
  def realFuncIWantToTest(value: Int): Int = {
    val v = mockThis(value)
    v
  }
}

显然,这是一个非常简单的情况,这不是我的代码所做的(V实际上是一个复杂的对象)。本质上,我希望realfunciwanttotest使用我定义的模拟函数返回值。

谢谢!

you 可能可以使用Mockito的间谍来做到这一点;请参阅此处的示例。

基本上是通过让 spy 围绕着您的类测试的 real 对象来努力工作。

但这里有一个单词:即使有可能,也请考虑更改您的 Design 。这种"部分嘲笑"通常表明您的班级违反了单一责任原则。含义:班级应负责"一件"。但是,您可以/必须/必须部分模拟的想法表明您的班级至少负责两个,以某种方式断开连接。

从这个意义上讲:更好的方法是mockThis()将是另一个对象的调用;可以通过依赖注入将其插入此类。

长话短说:至少在Java级别上,您的想法应该很好(我有些疑问,Mockito会从技术角度从您的 scala 对象都很好地工作;但是从概念点开始;您宁愿避免这样做。

相关内容

  • 没有找到相关文章

最新更新