У меня есть класс MyClass
, который распространяется App
. Дело в том, что внутри MyClass
существует переменная myValue
, которую мне нужно инициализировать, без фактического запуска приложения. Причина этого заключается в том, что я хочу запускать модульные тесты методов MyClass
неинтерактивным способом.Как инициализировать членов приложения без запуска приложения (main)?
class MyClass extends App {
val myValue = "A value that I need to run the unit tests"
def myMethod: Unit = "A method that needs to be unit-tested and uses " + myValue
/* ... main (interactive) code that is not supposed to run in the unit test... */
}
Итак, вопрос в том, как я могу инициализировать членов приложения без запуска приложения (основного)?
Есть ли причина, по которой вы выбираете расширение 'App' над определением метода' main': 'def main (args: Array [String]): Unit = ...'? Нет такой проблемы с последующим подходом. – Aivean
Кажется, что это «способ scala» делать вещи. Я бы переключился на Java-путь в одно мгновение, но мне интересно, есть ли менее хакерский способ сделать это ... –
На самом деле оба подхода одинаково «scala». Метод «основной» метод даже используется в примере «привет, мир» на сайте scala: http://www.scala-lang.org/documentation/getting-started.html – Aivean