单元测试调用文件系统函数的PHP

时间:2017-02-03 00:37:11

标签: php unit-testing filesystems

我想用phpUnit在helper类中测试一个新方法。

public function removeDuplicateLines() {
    $lines = file($this->getFilePath());
    $lines = array_unique($lines);
    file_put_contents($this->getFilePath(), implode($lines));
}

是否可以测试调用file()和file_put_contents()的方法,而无需在测试用例本身中创建文件?是否有推荐的方法在PHP中测试上述方法?

2 个答案:

答案 0 :(得分:1)

如果您想测试您的代码是否正常工作,那么您可能应该让代码执行预期的操作。

如果你真的不想搞乱文件,那么只需在你的课程中使用一个流(这会对你的生产产生性能/容量影响.PHPunit can do most of this适合你。

答案 1 :(得分:0)

在PHP7之前,我使用vfsStream进行了针对文件系统的所有测试;但是我还没有尝试过用PHP7,所以不能确认它支持那个版本的PHP(尽管没有理由不这样做)