Unit Tests Нужна помощь

143
01 января 2020, 14:10

Всем привет! Пишу на PHP, в качестве фреймворка использую Yii2, для написания тестов использую Codeception. Сразу скажу, что в написании тестов я новичок. Пока пишу простые тесты. Но вот дошел до места, где нужно внедрять мок-объекты. Почитал что это такое и с чем его едят. Пробовал, работает. Проблема в том, что я переделал метод, который тестирую для того, чтобы их использовать (просто для проверки, затем откатил).

Вопрос в том, как обходиться когда у меня в тестируемом методе вызывается компонент в методе глобально, через Yii::$app->компонент->метод() ? То есть я не могу передать в тестируемый метод явно созданный мок-объект, чтобы дернуть его замоканный метод.

Помогите разобраться как правильно замокать в таких случаях. Наверняка есть грамотное решение для таких случаев. Заранее спасибо за ответы.

Answer 1

В общем выхода я нашел два. Либо добавить тестовый конфиг, в котором будет полностью замокан используемый компонент, либо что более правильнее, это вынести глобальный вызов методов компонентов в отдельные методы и мокать непосредственно эти методы.

READ ALSO
Экспорт бд laravel

Экспорт бд laravel

Всем приветМоя проблема в том что когда я экспортирую бд

94
Как найти всех предков без внуков?

Как найти всех предков без внуков?

знаю, что формулировка вопроса звучит странно, но не смог по-другому

109
Laravel и elasticsearch

Laravel и elasticsearch

Пытаюсь разобраться, но пока без результатовНужды моего поиска сводятся к тому, чтобы находить товары по их имени

129
multimap замена operator[] для доступа к элементу

multimap замена operator[] для доступа к элементу

Судя по документации на multimap отсутствует доступ к элементам через оператор[] или at, в отличие от mapЕсть ли какая замена для доступа к нужному...

137