我有這個示例類
class Foo extends Parent {
final override protected def test(): String = "hello world"
}
就像現在一樣,我無法在單元測驗中直接呼叫此方法。我正在使用 Mockito,從我目前閱讀的內容來看,我要么需要
- 洗掉,
final以便我可以使用另一個子類(Bar 擴展 Foo)擴展和覆寫訪問修飾符(將保護轉為私有 [包]) - 將 Foo 類更新為
private[package].
這兩種選擇都不可取。有沒有辦法在保留簽名的同時仍然將方法公開為可單元測驗?
uj5u.com熱心網友回復:
您可以通過在測驗中擴展一個宣告公共方法的子類來test間接訪問.Footest
您沒有提到您正在使用哪個測驗執行框架,但這里有一個使用 ScalaTest 的示例FlatSpec:
import org.scalatest.flatspec.AnyFlatSpec
class FooSpec extends AnyFlatSpec {
class TestingFoo extends Foo {
def accessibleTest: String = test
}
it should "say hello" in {
assert(new TestingFoo().accessibleTest == "hello world")
}
}
整體方法與其他測驗框架類似。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/424404.html
下一篇:分裂特征的正確方法
