Codeception \ Util \ Stub методы :: точно и :: один раз не работают

Я использую Codeception \ Util \ Stub для создания модульных тестов. И я хочу быть уверенным, что мой метод называется несколько раз. Для этого я использую метод «точно».

Пример:

use \UnitTester; use \Codeception\Util\Stub as StubUtil; class someCest { public function testMyTest(UnitTester $I) { $stub = StubUtil::makeEmpty('myClass', [ 'myMethod' => StubUtil::exactly(2, function () { return 'returnValue'; }) ]); $stub->myMethod(); } } 

Как вы видите, я однажды позвонил myMethod. Но тест прошел. Та же проблема с методом :: один раз, потому что этот метод использует тот же класс PHPUnit_Framework_MockObject_Matcher_InvokedCount (ниже). Тест завершится неудачей, только если я назову более ожидаемое время (> 2). Поскольку метод matcher's 'invoked' проверяет, подсчитывается ли больше ожидаемого. Но не вижу, может ли кто-нибудь вызвать метод «проверять», чтобы проверить, был ли метод myMethod менее ожидаемым.

Извините stackoverflow, это мой первый вопрос.

ОБНОВИТЬ

Мое быстрое и быстрое решение:

Добавить заглушку в помощника

 $I->addStubToVerify($stub); 

Добавьте метод в помощник для проверки:

 protected $stubsToVerify = []; public function verifyStubs() { foreach ($this->stubsToVerify as $stub) { $stub->__phpunit_getInvocationMocker()->verify(); } return $this; } 

Вызовите этот метод в методе Cest _after ():

 public function _after(UnitTester $I) { $I->verifyStubs(); }