Модульные тесты: как предотвратить выполнение встроенных функций PHP

#php #unit-testing #tdd

#php #модульное тестирование #tdd

Вопрос:

Я создаю небольшую библиотеку, которая использует собственные методы PHP, такие как json_encode и file_put_contents .

Теперь я провожу модульное тестирование, и json_encode меня не беспокоит, если оно запускается, но file_put_contents создает мне файлы при запуске модульных тестов.

Какие у вас есть идеи по этому поводу?

Я думал о том, чтобы инкапсулировать эти методы в помощниках, например. JsonHelper, FileHelper, с методами, которые их выполняют, и имитируют их в исходном классе.

Что вы думаете?

Комментарии:

1. medium.com/weebly-engineering/…

Ответ №1:

Инкапсуляция функций, которые являются внешними зависимостями, в целом является хорошей идеей. В PHP у меня обычно были бы такие классы, как JsonEncoder , File и Calendar (последний для инкапсуляции функций даты). Пожалуйста, не вызывайте их XyzHelper . Кролик умирает каждый раз, когда люди так называют классы.