0

我决定用 BDD 工作流编写简单的 MVC。我想实现设置类的某些属性的方法。这件事与文件路径有关。在这种方法中,我想检查路径是否正确以及该文件是否存在。最终产品应如下所示:

<?php
class SomeClass
{
     public function setProperty($property_value)
     {
         if (!file_exists($property_value)) {
             throw new CustomFileNotFoundException();
         }
         $this->someProperty = $property_value;
     }
}

我应该如何在 PhpSpec 中实现测试方法(示例)?我不想在规范测试中创建“虚拟”文件,我确定有一些模拟/刺伤方法,但我不知道如何处理这个......我只想检查这个属性是否被设置。
我应该为文件系统创建单独的中间层然后模拟它吗?谢谢你的帮助!

4

1 回答 1

3

我可以在这里看到三个选项。前两个你已经弄清楚了;)

您可以创建和删除“虚拟”文件或注入协作者模拟文件系统操作(查看 Symfony 的文件系统组件)。

第三种选择是为虚拟文件系统使用流包装器,例如vfsStream。这是一个很好的解释它是如何工作的:https ://github.com/mikey179/vfsStream/wiki/Example

于 2013-10-08T23:30:57.933 回答