PHPUnitのモック機能を使いテストを行いたいのですが、うまく置き換わってくれません。
FuelPHPを使用しています。
↓のようなコードのテストをPHPUnitで行いたいと考えています。
class Item_Relation extends \Utility\base {
public function get_item_info($account, $item_name) {
$item_master_instance = new \Utility\Item_Master();
$item_master_id = $item_master_instance->get_id($account, $item_name);
return $item_master_id;
}
}
get_idメソッドと_get_item_infoメソッドのテストをモックでやろうとしているのですが、
↓のコードを書くとモックで既存のメソッドを置き換えてくれません。
class Test_Item_Relation extends TestCase
{
private $item_relation_instance = null;
public function setUp() {
$this->item_relation_instance = new \Utility\Item_Relation();
}
/**
* @test
*/
public function get_item_info() {
$item_master_mock = $this->getMockBuilder(\Utility\Item_Master::class)
->setMethods(['get_id'])
->getMock();
$item_master_mock->expects($this->once())
->method('get_id')
->will($this->returnValue(1));
$item_master_id = $this->item_relation_instance->get_item_info('unit_test_account', 'item_name');
$this->assertSame(1, $item_master_id);
}
}
PHPUnitのマニュアルを見て↑を書いたのですが、想定通り動かないので、
ご教授いただけますと幸いです。