例子:

object Test {

  def test = {
    doTest
  }

  protected def doTest = {
  // do something
  }
}

class MockTest extends WordSpec with Mockito{
  "" in {
    val t = spy(Test)

    // how do i stub out doTest?
  }
}

我有一个带有 protected doTest方法的Test类。如何将这个 protected 方法 stub ?

最佳答案

我建议将doTest包设为私有(private),这样对象的客户端将无法调用它,但可以在同一包中对其进行测试。

package com.company.my.foo

object Test {

  def test = {
    doTest
  }

  private[foo] def doTest = {
  // do something
  }
}


package com.company.my.foo

class MockTest extends WordSpec with Mockito{
  "" in {
    val t = spy(Test)

    when(t.doTest()).thenReturn("foo")
  }
}

关于scala - 如何在Scala中的对象中 stub protected 方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25334063/

10-13 09:46