facebook twitter hatena line email

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();
  }
}