Sto scrivendo del codice PHP per analizzare gli URL in arrivo. Si basa in gran parte su globalmente PHP come $_SERVER
e $_GET
. Sto pensando di impostare manualmente questi in PHPUnit unit test setUp()
funzione. C'è un modo migliore per farlo?
12
A
risposta
11
Un'idea sarebbe quella di avvolgere $ _SERVER e $ _GET in classi invece di accedervi direttamente, in modo da non doverne fare completamente affidamento. Vedi questo approccio frequentemente nei quadri comuni. In questo modo puoi bloccare o deridere facilmente la richiesta senza dover configurare lo stato dei superglobali.
Si prega inoltre di vedere il capitolo sulla Global State in the PHPUnit Manual
Potrebbe dare un esempio di come impostare lo stato di superglobals senza un involucro? (Anche se è puzzolente) – JayIsTooCommon
@JayIsTooCommon li hai appena impostati nel test, ad es. $ _SERVER ["foo"] = 42 se ricordo correttamente. Può farlo nel metodo di test effettivo o in setup() o in setupbeforeclass() (se esiste ancora al giorno d'oggi) – Gordon
Ah ok, allora devo fare qualcos'altro di sbagliato. Grazie :) – JayIsTooCommon