Php/phpunit/モックオブジェクト/依存するロジックを含む場合
提供: 初心者エンジニアの簡易メモ
2015年5月20日 (水) 03:18時点における127.0.0.1 (トーク)による版 (ページの作成:「==依存するクラスの解決法== モックできない場合は、できるように修正する *UserGetLogic.php(テスト対象修正前 class UserGetLogic {...」)
依存するクラスの解決法
モックできない場合は、できるように修正する
- UserGetLogic.php(テスト対象修正前
class UserGetLogic
{
public function getUserId()
{
$user = new UserClass();
return $user->getId();
}
}
- UserGetLogic.php(テスト対象修正後
class UserGetLogic
{
private $_user;
public function getUser()
{
return new UserClass();
}
public function getUserId()
{
$user = $this->getUser();
return $user->getId();
}
}
- UserGetLogicTest.php(テストコード
class UserGetLogicTest extends PHPUnit_Framework_TestCase
{
public function testGetUserId()
{
// userClassのモック作成
$userClassMock = $this->getMock('UserClass', array('getId'));
$userClassMock->expects($this->any())-method('getId')->will($this->returnValue(10));
// logicのモック作成
$logic = $this->getMock('UserGetLogic', array('getUser'));
$logic->expects($this->any())->method('getUser')->will($this->returnValue($userClassMock));
$id = $logic->getUserId();
}
}
