11
PHPUnitを使用して、メソッドが予期されたパラメータ、つまりとの戻り値で呼び出されたかどうかをテストするオブジェクトをモックできますか? docでPHPunit:パラメータと戻り値を持つメソッドをモックする方法
、両方そこパラメータ、または戻り値を渡すと例がありますが、ない...
私はこれを使用してみました:
// My object to test $hoard = new Hoard(); // Mock objects used as parameters $item = $this->getMock('Item'); $user = $this->getMock('User', array('removeItem')); ... $user->expects($this->once()) ->method('removeItem') ->with($this->equalTo($item)); $this->assertTrue($hoard->removeItemFromUser($item, $user));
買いだめので、私の主張はに失敗:: removeItemFromUser()は、trueのUser :: removeItem()の戻り値を返す必要があります。
$user->expects($this->once()) ->method('removeItem') ->with($this->equalTo($item), $this->returnValue(true)); $this->assertTrue($hoard->removeItemFromUser($item, $user));
また、次のメッセージで失敗します。 "呼び出しユーザーのためのパラメータ数:: removeItem(Mock_Item_767aa2dbオブジェクト(...))が低すぎる"
$user->expects($this->once()) ->method('removeItem') ->with($this->equalTo($item)) ->with($this->returnValue(true)); $this->assertTrue($hoard->removeItemFromUser($item, $user));
はまたで失敗"PHPUnit_Framework_Exception:パラメータマッチャーが既に定義されており、再定義できません。"
このメソッドを正しくテストするにはどうすればよいですか。