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

测试有效,但我不确定它是否检查构造函数调用,我不知道如何检查参数是否通过。

4

1 回答 1

0

通常你会模拟 Maker() 类,并确保它从模拟中返回,即你正在寻找的对象。

我为测试这样的事情所做的另一个选择是简单地测试 Maker 并使用给定的类期望调用 fetchObject() 例程,然后使用 InstanceOf 检查返回的对象是否属于所需的类。

于 2013-07-03T13:15:50.853 回答