2016-08-16 5 views
-2

В моем приложении Java Web Spring я должен вызвать внешнюю программу. Это не какой-то вызов REST API, а некоторые системные двоичные файлы в файловой системе.Как нарушить внешний вызов программы в JUnit

Как я могу модульно тестировать/издеваться над этими вызовами?

Благодаря

+0

мутноватый - Я не понимаю, что вы просите. –

+1

Вывести вызов внутри 'class MyExternalBinary'; затем издеваются над этим классом. –

ответ

2

Вы должны думать в абстракций.

Пример: Вы можете создать что-то вроде

interface BinaryRunner { 
    void runBinary(String command, String... args); 
} 

class BinaryRunnerImpl implements BinaryRunner { ... 

(конечно, это всего лишь пример, как я полностью покинул наш ошибка обработки путь)

А ваш «производство» код использует этот чтобы, ну, запустить двоичные файлы. И теперь вы можете издеваться над экземпляром BinaryRunner и дать это вашему производственному коду. Ваш производственный код делает свои звонки; и вы можете использовать макет, чтобы проверить это.

Наконец: Конечно, тестирование реализации BinaryRunner может быть немного сложнее ;-)

Смежные вопросы