は確認
->with($this->equalTo('foobar'))
または任意の
->with($this->anything())
パラメータの特定と呼ばれていました。
しかし、メソッドがパラメータなしで呼び出されたことを指定する方法はありますか?
この私が失敗することを期待テストです:
public function testZ()
{
$a = $this->getMock('q');
$a->expects($this->once())
->method('z')
->with(); // <--- what constraint to specify here?
$a->z(1);
}
UPD:
質問は、理論的な性質を持っているので、私は任意の実際の生活の例何を持っていません。私は今考えることができますいくつかの場合、それは有用である可能性がある:(foo()
を想定し、デフォルトのものを持っている)
public function testMe($object)
{
$object->foo();
}
とのは、testMe
は、(設計によっておよび要件によって)常にパラメータなしでメソッドを呼び出す必要があることを想定してみましょう。この場合、デフォルト以外のパラメータ(より正確には、すべてのパラメータ!=既定のパラメータ!=未知であり、おそらく独立して変更できる可能性があるため)は致命的な結果を招きます。
+1 PHPUnitのソースをgithub上で調べてみたところ、 ' - > with()'のように見えるのは、実際にパラメータを指定して、禁止するのではなく、私は実際には引数が渡されていないことを確認するシナリオを考えることができますが、あなたがチェックする必要があるものですか?なぜ引数が送られなかったのかを確認する必要があるのかどうか聞くことに興味があります。何も期待されていないときに引数を渡すと何も壊れませんし、提供できない引数がある場合にはNULLを渡すことはできませんか? – rdlowrey
@rdlowrey:説明の更新を追加しました;-) – zerkms
@rdlowrey: '提供できないと予想される引数があるときにNULLを渡すことはできませんか?'できません。メソッドはまだオプションのパラメータを持つことができます – zerkms