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