php - 单元测试:如何防止执行内置 PHP 函数
问题描述
我正在做一个使用原生 PHP 方法的小型库,比如json_encode
和file_put_contents
.
现在,我正在做单元测试,json_encode
如果它运行不会打扰我,但file_put_contents
在运行单元测试时会创建我的文件。
你对此有什么想法?
我正在考虑将这些方法封装在 Helpers 中,例如。JsonHelper,FileHelper,带有执行这些的方法,并在原始类中模拟它们。
你怎么看?
解决方案
封装作为外部依赖项的函数通常是一个好主意。在 PHP 中,我通常会有JsonEncoder
,File
和Calendar
( 后者用于封装日期函数) 之类的类。请不要打电话给他们XyzHelper
。每当人们这样命名课程时,一只小兔子就会死去。