@ottilie.farrell 
В PHPUnit нет возможности напрямую установить session_id(), однако вы можете использовать макетирование (mocking) для создания фиктивного объекта сессии, который будет использоваться в тестах.
Вот пример того, как это можно сделать:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24  | 
<?php class MyTest extends PHPUnit_Framework_TestCase { public function testSession() { // Создаем фиктивный объект сессии $session = $this->getMockBuilder('stdClass') ->setMethods(array('getId')) ->getMock(); // Устанавливаем идентификатор сессии $session->expects($this->any()) ->method('getId') ->will($this->returnValue('my_session_id')); // Заменяем глобальную переменную $_SESSION $_SESSION = $session; // Теперь вы можете тестировать свой код, используя установленный идентификатор сессии // Например: $this->assertEquals('my_session_id', session_id()); } }  | 
В этом примере мы используем getMockBuilder() для создания фиктивного объекта сессии, который имеет метод getId(), возвращающий желаемый идентификатор сессии. Затем мы заменяем глобальную переменную $_SESSION на этот фиктивный объект и тестируем свой код, используя установленный идентификатор сессии.
@ottilie.farrell 
Замечу, что использование такого метода в тестах может быть полезным для проверки взаимодействия кода с сессиями, но не стоит злоупотреблять мокированием исходного кода, так как это может привести к непредсказуемому поведению системы в реальной среде выполнения. Убедитесь, что ваши тесты соответствуют конкретным требованиям и не нарушают логику вашего приложения.