Задать вопрос
@itcoder

Как вы тестируете статические методы?

Наткнулся на статью по тестированию статических методов через Mock или Stub
https://sebastian-bergmann.de/archives/883-Stubbin... но в ней рассматриваться случай для PhpUnit 3.5. соответственно в 4.5 не работает.
Хотелось бы услышать как вы тестируете статические методы ?
  • Вопрос задан
  • 4438 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Как вы тестируете статические методы?


Никак. Если у вас есть что-то внутри статического метода что стоит покрыть тестами - значит что-то пошло не так. Обычно там крайне примитивная логика, на уровне вызвать конструктор с нужными параметрами и т.д.

В вашем же вопросе вы интересуетесь как мокать статические методы. И тут ответ тоже никак:
Please note that final, private and static methods cannot be stubbed or mocked. They are ignored by PHPUnit's test double functionality and retain their original behavior.


Есть правда еще мокери всякие и т.д.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
He11ion
@He11ion
PHP-monkey
Зависит от Вашей архитектуры, я применяю класс-"обертку" с перегрузкой нужного метода (этим же трюком пользуюсь для изменения вызова функций класса-родителя)

Как-то так:
class A { // "родной" класс
	static function static_call ()
	{
		echo 'static_call a';
	}
}

class B extends A{ // "обертка" для тестирования
	static function static_call ()
	{
		echo 'static_call b';
	}
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы