У меня проблема с написанием модульных тестов для простой сессионной оболочки.
Сам класс имеет некоторые основные функции set
, get
, exists
и т. Д. Все эти функции имеют проверку assertSessionStart
, который выполняет следующие действия:
protected static function assertStarted()
{
if (strlen(session_id()) < 1) {
throw new Exception("Some text here");
}
return;
}
При записи наборов моих модулей у меня есть следующие методы setUp
и tearDown
.У меня они есть, потому что я хочу, чтобы у каждого запускаемого теста была свежая среда сеанса.
protected function setUp() {
session_start();
}
protected function tearDown() {
session_destroy();
}
Теперь к проблеме, я хочу метод теста, который не работает, когда я пытаюсь использовать set
, когда я неСессия началась.Для этого мне придется уничтожить сеанс, начатый в setUp
.Например:
public function testGetWithoutSession() {
session_destroy();
$this->setExpectedException('Exception');
ESL_Session::set('set', 'value');
session_start();
}
Однако выдается предупреждение «Попытка уничтожить неинициализированный сеанс».Когда я ставлю echo session_id()
прямо перед session_destroy
, хотя - это показывает, что у меня есть действительный сеанс.
У кого-нибудь есть опыт модульных тестировщиков сессий?Дополнительная информация :
- PHP версии 5.3.6
- Linux