У меня следующая проблема.
Предположим, у меня есть следующий класс (пример отсюда: Link ):
package com.example.people
class Person(val age: Int)
object Person {
private def transform(p: Person): Person = new Person(p.age + 1)
}
Итак, у меня есть пакет, и внутри у меня есть класс с частным методом.
Теперь я знаю, что с помощью scalatest я могу сделать что-то вроде этого. В моей тестовой папке у меня есть:
import org.scalatest.{ FlatSpec, PrivateMethodTester }
class PersonTest extends AnyFunSuite with PrivateMethodTester {
test("A Person" should "transform correctly") {
val p1 = new Person(1)
val transform = PrivateMethod[Person]('transform)
assert(p2 === p1 invokePrivate transform(p1))
}
}
Теперь мой вопрос, если я добавлю модификатор доступа к моему частному методу следующим образом (аналогично ответу в этой Ссылке ):
package com.example.people
class Person(val age: Int)
object Person {
private[example] def transform(p: Person): Person = new Person(p.age + 1)
}
Тест жалуется, что преобразование больше не является частным методом.
Есть ли способ, которым я все еще могу использовать тестер частного метода, даже если у меня есть модификатор доступа для частного метода? функция?