私はおそらくここで本当に些細なことを見逃していますが、phpunitに代用のMockedクラスを使用させることはできません。
以下は、Foo
私がテストしBar
ているクラスとモックアウトしたいクラスの例です。
私はモックをしたので、以下の例が通過することを期待しますBar
。スタブアウトBar::heavy_lifting
して「バーではない」を返し、そのトラフを呼び出しますFoo::do_stuff()
。それでも失敗し、例はまだ「バー」を返し、私のスタブを完全に無視しているようです。
class Foo {
public function do_stuff() {
$b = new Bar();
return $b->heavy_lifting();
}
}
class Bar {
public function heavy_lifting() {
return "bar";
}
}
class FooTest extends PHPUnit_Framework_TestCase {
public function testBar() {
$fake = "not bar";
$stand_in = $this->getMock("Bar");
$stand_in->expects($this->any())
->method("heavy_lifting")
->will($this->returnValue($fake));
$foo = new Foo();
$this->assertEquals($foo->do_stuff(), $fake);
}
}