У меня такой код внутри моего модульного теста:
// $item_id was defined above $originalMock = $this->getMock( 'Item', array( 'foo' ), array( $item_id )); $originalMock->expects( $this->once() )->method( 'foo' ); $originalMock->functionThatCallsFoo();
Говорят, что я вообще не вызываю foo
, хотя functionThatCallsFoo
& foo
var_dumping изнутри.
Существует несколько вызовов функций между публично вызываемой функцией и той, которую я ожидаю. Я убедился, что нет статических функций, вызываемых цепочкой. (Были изначально, но я изменил их, чтобы посмотреть, смогу ли я получить эту работу вообще)
EDIT Я изменил свой запрос на expects
вызова метода, вызванного напрямую из functionThatCallsFoo
и он все еще не работает.
Я собираюсь ответить на этот вопрос, так как у меня был целый ряд проблем с моим кодом. Надеюсь, этот ответ будет небольшим контрольным списком, если у кого-то другие проблемы в будущем.
В конце концов, я могу теперь понять, почему статические функции являются злыми.