Ваш метод теста вызывается в главном конструкторе первым делом.Ни один другой конструктор не сможет избежать его вызова до запуска собственного кода.
В вашем случае вы должны просто поменять, какой конструктор что делает.У главного конструктора должен быть строковый параметр, а у вспомогательного - нулевой.Дополнительный выигрыш, вы можете объявить var непосредственно в списке параметров.
class Constructor(var s: String) {
def this() = this(null)
def testMethod() = println(s)
testMethod()
}
В общем случае главный конструктор должен быть более гибким, обычно назначая каждое поле из параметра.Синтаксис Scala делает это очень просто.Вы можете сделать этот главный конструктор приватным, если это необходимо.
Редактировать : еще проще с параметром по умолчанию
class Constructor(var s: String = null) {
def testMethod = println(s)
testMethod
}