Доступ к родительской области видимости переменных в ScalaTest
У меня есть простой модульный тест, например
"foo" in {
val probe = TestProbe()
val actor = TestActorRef(Props(new MyActor("blabla")) {
override def createActor: ActorRef = probe.ref
}))
}
Однако класс MyActor
содержит поле с именем probe
, поэтому моя ссылка переопределения на эти поля вместо моей локальной тестовой переменной. Код не компилируется (так как поле probe
не имеет члена ref
).
Я, конечно, могу просто переименовать переменную, но мне бы хотелось, как это сделать правильно - я имею в виду, как ссылаться на переменную из моего локального контекста, как решить это "столкновение имен"?
1 ответ:
Здесь задается аналогичный вопрос: Scala: как получить доступ к затененной переменной функции из объекта, хотя я бы не считал его дубликатом.
Но тот же ответ применим:
Нет, это невозможно. Невозможно ссылаться на внешнюю переменную, не переименовав ее, потому что для внешнего блока не существует идентификации.