2

PHPUnitとモック化されたクラスについて頭を悩ませ始めたところです。データベース オブジェクトからクエリ オブジェクトを取得し、このクエリからデータをフェッチするコードをテストしようとしています。そのため、これらのデータベース オブジェクトの機能を模倣して、常に既知のデータ セットを返すようにしています。

私のクライアントコードは次の行を実行しています:

    $result = $query->fetch(db::FETCH_ASSOC);

テストを実行しようとすると、次のエラーが表示されます。Fatal error: Undefined class constant 'FETCH_ASSOC' in...... etc

モック オブジェクトを作成するテスト内のコードは次のようになります。

    /** dbQuery Mock Object */
    $this->dbQuery = $this->getMock('dbQuery', array('execute', 'fetch' ), array(), '', false);

    $this->dbQuery->expects($this->any())
                  ->method('execute')
                  ->will($this->returnValue(null));

    $this->dbQuery->expects($this->any())
                  ->method('fetch')
                  ->will($this->returnValue(null));


    /** db Mock Object */
    $this->dbro = $this->getMock('db', array('prepare'), array(), '', false);
    $this->dbro->expects($this->once())
        ->method('prepare')
        ->will($this->returnValue($this->dbQuery));

私の質問は、モックされた db オブジェクトのクラス定数にアクセスするにはどうすればよいですか? または、物事の壮大な計画で何が欠けているのでしょうか?

4

1 に答える 1