1

文字列プロパティとしてクラス名があります。1 つのメソッド ( fetchObject) は、このクラスの新しいインスタンスを作成します。このメソッドを PHPUnit と Mockery でテストしたいと思います。

それがコードです

class Maker
{
    private $_className = 'Article';

    public function fetchObject( $array )
    {
        return new $this->_className( $array );
    }
}

私はこのようなことを試しました

$data = array( 'title' => 'Amazing title' );
$article = m::mock( 'Article', array( $data ) );

$maker= new Maker;
$result = $maker->fetchObject( array() );

テストは機能しますが、コンストラクターの呼び出しをチェックするかどうかはわかりません。また、param が渡されたかどうかをチェックする方法もわかりません。

4

1 に答える 1

0

通常、Maker() クラスをモックし、探しているオブジェクトであるモックから返されることを確認します。

このようなことをテストするために私が行ったもう 1 つのオプションは、単純に Maker をテストし、指定されたクラス期待値で fetchObject() ルーチンを呼び出し、返されたオブジェクトが目的のクラスであることを InstanceOf チェックでテストすることです。

于 2013-07-03T13:15:50.853 に答える