我试图让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();
}
}
正如您所看到的,有一个测试(希望)创建了一个期望setUri将被调用的测试.由于没有涉及任何其他代码,我无法想象它可以调用,但我的测试通过.有人可以解释为什么吗
你需要调用Mockery:close()来运行你期望的验证.它还处理下一个测试用例的mockry容器的清理.
public function tearDown()
{
parent::tearDown();
m::close();
}