В Споке, как я могу проверить, что статический метод был вызван из другого статического метода? - PullRequest
0 голосов
/ 26 июня 2019

Вот мой класс:

class Application {
    public static void main(){
        System.out.println("main called");
        otherMethod();
    }

    public static void otherMethod(){
        System.out.println("otherMethod called");
    }
}

Вот мой тест на спок

def "Expect that Application.otherMethod() is called"(){
    given:
    def app = new Application() 

    when:
    Application.main()

    then:
    1 * Application.otherMethod()
}

Как я могу сделать эту работу?

1 Ответ

1 голос
/ 26 июня 2019

Ты не. Статические методы не должны иметь видимых побочных эффектов (в идеале, они должны быть чистыми функциями), и для клиента не имеет значения как они реализованы.

В упрощенном случае вы перемещаете вызов для otherMethod() в конструктор для Application и вызываете new Application() из вашего main.

...