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

ここに 3 つのオプションがあります。最初の 2 つは、すでに自分で把握しています ;)

「ダミー」ファイルを作成して削除するか、ファイルシステム操作のためにコラボレーターのモックを挿入することができます (Symfony のFilesystem コンポーネントを見てください)。

3 番目のオプションは、 vfsStreamのような仮想ファイルシステムのストリーム ラッパーを使用することです。これがどのように機能するかについての良い説明があります: https://github.com/mikey179/vfsStream/wiki/Example

于 2013-10-08T23:30:57.933 に答える