Я читал руководство PHPUnit, и есть одна часть, я просто не могу понять, что делать с издевательскими чертами (figure 9.18).PHPUnit mocking traits
В их примере есть конкретный метод, который возвращает значение из абстрактного метода (который в конечном итоге издевается над тестом).
К сожалению, объяснение 2 предложения не объясняет, почему это полезно! Насколько я могу судить, тест, очевидно, пройдет, но в реальном мире абстрактный метод не будет издеваться, и на самом деле это провалится?
Мы собираемся удалить абстрактный метод и заменить вызов его конкретным методом? Если да, то в чем смысл теста? Почему мы загромождаем черты абстрактными методами, которые на самом деле не используются?
Вопрос о том, почему тест должен пройти тестирование, если он используется в реальном мире, это провалится? Если бы кто-то мог помочь мне понять это, было бы признательно!
А я вижу, пример для черт, которые на самом деле * используют * абстрактные методы в реальном мире? Я думаю, что я смущался, думая, что абстрактные методы были * необходимы только для теста (и поэтому не применимы в реальном мире). Спасибо :) –
Я не уверен, где это хорошая практика или нет, представьте, что вы тестируете только эту черту, но не класс, использующий ее, в один прекрасный день вы решили удалить ее из этого класса ... так внезапно ваш код останавливается как это было, и вы не будете знать, почему, потому что вы не тестировали его на реальном классе. Поэтому всегда проверяйте поведение своего класса, когда дело доходит до его использования. – itsjavi