Когда вы пишете «mocks», я предполагаю, что вы намереваетесь написать модульный тест.
ONE: Либо вы тестируете класс , либо , который вы издеваетесь Это. Вы используете mocks, чтобы сделать свой тест независимым от поведения (и, следовательно, возможных ошибок) других модулей («зависимостей» вашей «тестируемой системы» (SUT)).
TWO: Вы не пишете тесты для увеличения покрытия кода. Вы пишете тесты для обеспечения выполнения требований контракта API.
ТРИ: Чтобы протестировать свой основной метод: вызовите его! Вы можете ввести аргументы и посмотреть, соответствует ли возвращаемое значение вашим ожиданиям.
FOUR: Проблема может заключаться в том, что у вас есть stati c зависимости, которые вы не можете контролировать. Spring позволяет настраивать макеты для инъекций бобов. Сейчас я не могу рассказать вам подробности, но я уверен, что вы можете узнать, это должно быть что-то вроде @Configuration
аннотированных классов или тестовых спецификаций c их версий.
Но: ваш тест не имеет контроля что бы ни было над объектом main
. И искренне, я думаю, что на самом деле вы намереваетесь протестировать класс Main
. Также вы можете захотеть внедрить экземпляр Main
с помощью Spring.
FIVE : Я не уверен, стоит ли включать многопоточность в модульные тесты, так как это означает, что ваш Тест не может контролировать окружающую среду вашего sut. Если вы не знаете, где начинается ваш тест, вы не можете решить, является ли он правильным или нет.