基本的に次のようなメソッドを作成しました。
public function collectData($input, FooInterface $foo) {
$data = array();
$data['products']['name'] = $this->some_method();
if(empty($input['bar'])) {
$data['products']['type'] = "Baz";
}
// hundreds of calls later
$foo->persist($data);
}
collectData
ここで、メソッドを単体テストし$data
て、特定の入力に対して値が設定されているかどうかを確認したいと思います。オブジェクト パラメータについては、通常、次のようなモックを使用します。
$mock = $this->getMock('FooInterface');
$mock->expects($this->once())
->method('persist')
->with($this->identicalTo($expectedObject));
$data['products']['prices']['taxgroup']
しかし、配列内にある可能性のある他のすべてのキーを無視して、特定のネストされた配列キー (たとえば、1 の場合) をテストするにはどうすればよいでしょうか? PHPUnit または Mockery はそのようなチェックを提供しますか? または、そのようなチェックを提供するように簡単に拡張できますか?
それとも、私が現在行っていることを実行する方が良いですか?呼び出しでデータFooClassMock
を実装して保存する独自のクラスを作成しますか?FooInterface
persist