Mockery-在构造函数中创建一个mock



是否有方法在测试类构造函数/类setUp函数中创建mock,以便所有测试方法都可以使用该mock?

我尝试过在构造函数中创建如下:

public class testMocks extends PHPUnit_Framework_TestCase {
    protected $mock;
    public function __construct()
    {
        $this->mock = Mockery::mock('myMockedClass');
    }
...

但这行不通。如果第一个测试通过,那么在模拟上断言的所有测试都通过,即使它们应该失败(即运行应该失败的shouldReceive)。有什么想法吗?

您必须使用setUp函数,如下所示:

public function setUp()    
{
    $this->mock = Mockery::mock('myMockedClass');
}

您不应该覆盖PHPUnit_Framework_TestCase的构造函数,请参阅我在#15051271和#17504870 上的回答

您还需要在tearDown方法上调用Mockery::close()。close方法为您的下一次测试清理嘲讽容器,并运行您设置的期望值。

public function tearDown()
{
    Mockery::close();
}

最新更新