Прежде всего, поскольку ваш метод run () является своего рода средством запуска рабочего процесса, и у вас есть несколько шагов, которые необходимо выполнить внутри рабочего процесса, я думаю, что вам нужно более одного модульного теста, возможно, даже для разделения существующего Класс на несколько меньших, каждый из которых соответствует шагу в рабочем процессе.
Таким образом, вы также будете тестировать изолированно на каждом этапе рабочего процесса. Если в какой-то момент рабочий процесс завершится сбоем, эти меньшие модульные тесты позволят вам легче идентифицировать неисправную деталь (отказавший шаг)
Но, возможно, это уже так, я не знаю, нет ли у вас такого разделения.
В любом случае, возвращаясь к методу run (), ответ лежит в вашем вопросе:
Этот метод Run () делает кучу вещей - принимает в качестве входного файла файл Excel, извлекает из него данные, отправляет запрос стороннему поставщику данных, получает результат и помещает его в базу данных и регистрирует начало / конец работы
Итак, у вас есть:
некоторые входные данные (из файла Excel)
некоторые "выходные" данные или, скорее, результат работы.
Для успешного выполнения run () необходимо проверить следующее:
а) запрос был отправлен третьей стороне и / или был получен результат. Я не знаю, какой из них будет легче проверить, но, по крайней мере, вы могли бы, вероятно, зарегистрировать запрос / ответ и проверить журналы (в модульном тесте) для выполняемой операции. Это обеспечит выполнение всего рабочего процесса (мы можем представить сценарий, в котором правильные данные присутствуют в БД в конце рабочего процесса, но не потому, что прогон работал правильно, а потому, что данные уже были там или что-то подобное линии - если очистка перед тестом не удаляет некоторые данные, например)
b) проверять базу данных на правильные значения (относительно входных значений), которые вставляются / обновляются в нужных местах в результате рабочего процесса.
в) вы могли бы даже проверить журналы, которые вы упоминаете (начало / конец задания), на достоверность задержки между двумя операциями (если вы знаете, что она не может работать быстрее, чем, скажем, 10сек, если ваш журнал говорит, что работа сделана за 1 секунду, вы узнаете, что что-то пошло не так ...)
Редактировать : в качестве первого теста перед а) выше вы можете также проверить входные данные, так как вы можете также представить ошибки там (отсутствует файл Excel, или содержимое изменилось, так что вы неправильный ввод и т. д.)