Mockery shouldReceive() - > once()似乎不起作用

Jez*_*Jez 12 php mockery

我试图让Mockery声明一个给定的方法被调用至少一次.

我的测试类是:

use \Mockery as m;

class MyTest extends \PHPUnit_Framework_TestCase
{

    public function testSetUriIsCalled()
    {
        $uri = 'http://localhost';
        $httpClient = m::mock('Zend\Http\Client');
        $httpClient->shouldReceive('setUri')->with($uri)->atLeast()->once();
    }

}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,有一个测试(希望)创建了一个期望setUri将被调用的测试.由于没有涉及任何其他代码,我无法想象它可以调用,但我的测试通过.有谁能解释为什么?

Bra*_*sen 48

您需要致电Mockery:close()运行验证以满足您的期望.它还处理下一个测试用例的mockry容器的清理.

public function tearDown()
{
    parent::tearDown();
    m::close();
}
Run Code Online (Sandbox Code Playgroud)