от класса A, тоже написанного мной. Для класса A юнит тесты я уже написал, и сейчас перешёл к написанию тестов для класса B. Возникла такая дилемма: мокать объект класса A (1) или использовать настоящий его экземпляр (2)?
При втором варианте если проблема будет именно в классе A, то могут полететь также и тесты класса B, и наверное, так обычно не делают, потому что тесты точно должны показывать проблемное место, и одна проблема не должна вызывать провал целой кучи тестов.
При первом варианте тоже есть проблема - это увеличение объема кода. Если такая зависимость одна или если их несколько, то это ещё нормально, но если в классе много зависимостей, то будут проблемы с тем, чтобы создать мок каждой зависимости и сделать заглушки для каждого нужного вызова.
На то и dependency injection. Если класс А ты проверил, то при тесте класса Б класс А уже проверять не нужно, так что мокай.
Обсуждают сегодня