首页 > 解决方案 > 单元测试:如何防止执行内置 PHP 函数

问题描述

我正在做一个使用原生 PHP 方法的小型库,比如json_encodefile_put_contents.

现在,我正在做单元测试,json_encode如果它运行不会打扰我,但file_put_contents在运行单元测试时会创建我的文件。

你对此有什么想法?

我正在考虑将这些方法封装在 Helpers 中,例如。JsonHelper,FileHelper,带有执行这些的方法,并在原始类中模拟它们。

你怎么看?

标签: phpunit-testingtdd

解决方案


封装作为外部依赖项的函数通常是一个好主意。在 PHP 中,我通常会有JsonEncoder,FileCalendar( 后者用于封装日期函数) 之类的类。请不要打电话给他们XyzHelper。每当人们这样命名课程时,一只小兔子就会死去。


推荐阅读