我有一个伴生对象,其中包含一个私有方法,如下所示:
package com.example.people
class Person(val age: Int)
object Person {
private def transform(p: Person): Person = new Person(p.age + 1)
}
我想测试这种方法,例如使用以下内容:
class PersonSpec extends FlatSpec {
"A Person" should "transform correctly" in {
val p1 = new Person(1)
val p2 = Person.transform(p1) // doesn't compile, because transform is private!
assert( p2 === new Person(2) )
}
}
如何让测试代码访问私有方法?
实际上,按照现有的写法,我可能能够创建 Person
的子类,但如果 Person
被声明为 final
或 sealed
呢?
谢谢!
transform
方法作为Person
类的公有方法呢?这不会泄露算法的任何抽象。 - Vidya