Io uso una classe per la sessione come suggeriva Phil. Se si chiama session_start() manualmente si associa il codice all'implementazione della sessione PHP. La mia chiamata a session_start è protetto dalla mia classe sessione con il seguente:
if (!isset($_SESSION))
{
// If we are run from the command line interface then we do not care
// about headers sent using the session_start.
if (PHP_SAPI === 'cli')
{
$_SESSION = array();
}
elseif (!headers_sent())
{
if (!session_start())
{
throw new Exception(__METHOD__ . 'session_start failed.');
}
}
else
{
throw new Exception(
__METHOD__ . 'Session started after headers sent.');
}
}
Edit:
Il codice qui sopra entra nella tua classe di sessione (e, probabilmente, essere chiamato in qualche modo dal suo costruttore). La riga di comando PHP crea una matrice invece di chiamare session_start (che non funziona sulla riga di comando).
Durante il test il codice che si basa su variabili di sessione ho deridere le variabili di sessione nel mio test:
$_SESSION = array('key1' => 'value you want', 'key2' => 'etc.');
Questo vi permette di testare tutte le possibili impostazioni della sessione che riceverete sulla pagina.
Verificare che i valori di sessione siano creati appartiene al codice che li crea a mio parere, quindi mi sembra che prendermi in giro sia la loro esistenza. In questo modo stai testando ciascuna unità separatamente piuttosto che combinandoli e mantenendo i valori della sessione tra i test.
Accumulo l'accesso ai dati di sessione in una classe dedicata e simulato nei test. – Phil
Le sessioni CI sono infatti dei cookie, quindi sì, funzionano nei browser –
Grazie Phil e Damien per la risposta .. @Phil Come potrei farlo? Quindi scusami im totalmente noob su questo .. Posso chiedere un esempio o le procedure se va bene con te .. thx –