@vladimir
В PHPSpec нет прямой поддержки проверки использования глобальных переменных, так как фокусируется на тестировании поведения объектов, а не на внутренней реализации или состоянии. Однако, вы можете проверить, как объекты взаимодействуют с глобальными переменными, используя некоторые обходные решения.
Одним из способов проверки использования глобальных переменных в PHPSpec является использование дублированных зависимостей. Вы можете создать фиктивные объекты, которые представляют глобальные переменные, и затем проверить, как ваш объект взаимодействует с этими фиктивными объектами.
Например, предположим, что у вас есть класс MyClass
, который использует глобальную переменную $_SESSION
. В PHPSpec вы можете создать фиктивный объект для представления $_SESSION
и затем проверить взаимодействие MyClass
с этим фиктивным объектом. Вот пример кода:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
class SessionDummy { // реализация фиктивного объекта, представляющего $_SESSION } class MyClassSpec extends ObjectBehavior { function it_should_use_session_variable() { $sessionDummy = new SessionDummy(); $this->beConstructedWith($sessionDummy); // теперь вы можете проверить, что MyClass использует этот фиктивный объект, // например, через setter или getter // пример использования: $this->getSession()->shouldReturn($sessionDummy); } } |
Это позволит вам проверить, что ваш объект взаимодействует с фиктивным объектом, который представляет глобальную переменную $_SESSION
. Обратите внимание, что вам нужно будет вручную создать фиктивный объект и передать его в конструктор вашего объекта.
Таким образом, хотя PHPSpec не предоставляет прямой поддержки для проверки использования глобальных переменных, вы можете использовать фиктивные объекты для представления этих переменных и проверить взаимодействие с ними.