我试图让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)