facebook twitter hatena line email

「Php/phpunit/モックオブジェクト/依存するロジックを含む場合」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(ページの作成:「==依存するクラスの解決法== モックできない場合は、できるように修正する *UserGetLogic.php(テスト対象修正前 class UserGetLogic {...」)
 
(相違点なし)

2015年5月20日 (水) 03:18時点における最新版

依存するクラスの解決法

モックできない場合は、できるように修正する

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