【问题标题】:Test if a method was called without providing parameters测试是否在不提供参数的情况下调用了方法
【发布时间】:2019-09-19 13:26:38
【问题描述】:

我有以下代码:

class MyClass {

  def someMethods(): Unit = {
    val result1 = method1()
    val result2 = method2(result)     
  }
}

不,我想在运行 someMethod 时测试是否调用了 method1 和 method2。

class TestMyClass {

  @Test
  def testSomeMethods(): Unit = {
    val myClass = new MyClass()
    val myClassSpy = Mockito.spy(myClass)
    myClassSpy.someMethods()
    verify(myClassSpy).method1()
  }
}

对于method1,这是可行的,但是method2需要一个由method1提供的参数。
我不能只做 assertTrue(method2.call) 之类的事情吗?
因为我不想检查方法的结果,我只想知道它们是否被调用。

【问题讨论】:

    标签: scala testing mockito


    【解决方案1】:

    嗯,使用间谍已经是一种味道了,你不应该那样测试你的班级内部。

    在任何情况下,您都可以使用 Mockito.verify(myClassSpy).method2(Mockito.any()),这样就可以解决问题,但我会认真审查您的设计以及此测试背后的动机,因为这确实是一种错误的方法。

    【讨论】:

      猜你喜欢
      • 2014-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-26
      • 2010-12-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多