Я создал псевдоним, используя Mockery в классе A, чтобы высмеять вызовы на некоторые общедоступные статические методы, которые сделаны в классе, который я хочу протестировать.Alias mock сохраняется по классам тестов
В другом классе испытаний B Я хочу использовать эти общедоступные статические методы (не издеваться), но похоже, что псевдоним mock, созданный в тестовом классе A, сохраняется, когда выполняется тестовый класс B. При выполнении тестов в тестовом классе BI получаю это исключение: BadMethodCallException: Static method Helper::formatDate() does not exist on this mock object
, даже если класс Helper не следует издевались в классе B.
Я попытался добавить:
/**
* @runTestsInSeparateProcesses
* @preserveGlobalState disabled
*/
в тестовых классов, чтобы сделать их работать отдельно, но потом я получаю эту ошибку:
PHPUnit_Framework_Exception: PHP Fatal error: Class 'TestCase' not found
Любой, кто имеет какие-либо идеи, как решить эту проблему?
Спасибо за ваш ответ @gontrollez. С помощью Mockery также возможно издеваться над статическими методами, и я не хочу менять насмешливую структуру, поскольку у меня довольно много модульных тестов, которые используют Mockery. Mockery также интегрирован в рамки, которые я использую. Возможно, мне удастся реорганизовать мой код, но Laravel использует по умолчанию довольно много статических вызовов. –
Да, я понял. Я не использовал Laravel в реальных проектах, поэтому я не могу сказать, но я уверен, что должен быть способ полностью протестировать код, разработанный с Laravel. Попробуйте задать вопрос, связанный с Laravel. – gontrollez