Php/phpunit/モックオブジェクト/依存するロジックを含む場合
提供: 初心者エンジニアの簡易メモ
依存するクラスの解決法
モックできない場合は、できるように修正する
- 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(); } }