Как использовать юнит-тест статического метода, в котором есть много объектов, которые нужно смоделировать

Я должен тестировать статический метод, который выглядит следующим образом:

public static boolean someProcess(List<String> arg1, Properties props, String[] arg3, String arg4, String arg5) throws Exception {
    boolean success = false;
    Job1 job1 = new Job1(arg3, props.getProperty("prop1"), props.getProperty("prop2"), arg1.get(0), arg4, "asdf", arg5);

    if(doJobAndCheckStatus(arg1, job1)) {
        String someId = job1.someId;
        Job2 job2 = new Job2(arg3, someId, arg4, arg5);

        if(doJobAndCheckStatus(arg1, job2)) {
            Job3 job3 = new Job3(arg3, someId, arg4, arg5);

            if(doJobAndCheckStatus(arg1, job3)) {
                String id2 = job3.id2;
                Job4 job4 = new Job4(arg3, id2, props.getProperty("prop3"), arg4, arg5);

                if(doJobAndCheckStatus(arg1, job4)) {
                    String id3 = job4.id3;
                    Job5 job5 = new job5(arg3, id3, arg4, arg5, props.getProperty("prop4"));

                    if(doJobAndCheckStatus(arg1, job5)) {
                        success = jobCompletedSuccessfully(arg1);
                    }
                }
            }
        }
    }
    return success;
}

public static boolean doJobAndCheckStatus(List<String> arg1, JobParent job) {
    job.processJob();
    ....
}

Как показано выше, в этом статическом методе есть 5 классов JobX для инициализации. Все эти классы Job являются сложными объектами, которые будут подключаться к внешним системам.

Моя идея модульного тестирования этого метода:

  1. Смоделируйте все классы JobX, которые используются в методе someProcess.
  2. Сконфигурируйте все проверенные классы так, чтобы они возвращали статус "success" при вызове их методов processJob.
  3. Этот метод someProcess должен возвращать true, если каждое задание выполнено успешно

Мои вопросы:

  1. Моя идея имеет смысл вообще? Что вообще нужно тестировать для этого конкретного метода?
  2. Лучший способ проверить этот метод? Как привести в действие все надуманные классы JobX?

Любое просвещение будет высоко оценено!

0 ответов

Другие вопросы по тегам