Я должен провести модульное тестирование статического метода, который выглядит следующим образом:
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 представляют собой сложные объекты, которые будут подключаться к внешним системам.
Моя идея модульного тестирования этого метода:
- Смоделируйте все классы JobX, которые используются в методе someProcess.
- Сконфигурируйте все фиктивные классы, чтобы они возвращали статус «success» при вызове их методов processJob.
- Этот метод someProcess должен возвращать true, если каждое задание выполнено успешно
Мои вопросы:
- Моя идея имеет смысл вообще? Что там тестировать для этого
конкретный метод вообще?
- Лучший способ проверить этот метод? Как привести в действие все ложные классы JobX?
Любое просветление будет высоко оценено!