Domanda

È possibile cambiare l'attrezzatura tra i metodi di prova?Se sì, come posso farlo?

La mia sintassi per questo problema:

Nel framework cakephp sto costruendo test per un comportamento configurato aggiungendo campi alla tabella.Questo ha lo scopo di funzionare nello stesso modo in cui l'aggiunta dei campi "creati" e "modificati" emetterà automaticamente questi campi su Save.

Per testarlo I Potevo creare dozzine di combinazioni di dispositivi/modelli per testare le diverse configurazioni, ma sarebbe cento volte migliore, più veloce e più semplice semplicemente far sì che il dispositivo cambi "forma" tra i metodi di prova.

Se non hai familiarità con Quadro CakePHP, forse puoi ancora aiutarmi mentre usa Test semplice

Modificare:domanda riformulata per essere più generale

È stato utile?

Soluzione

Non ho familiarità specifica con CakePHP, ma questo genere di cose sembra accadere ovunque con i dispositivi.

Non c'è un modo integrato nei binari almeno perché ciò accada, e immagino non in cakePHP o altrove perché l'idea stessa di un dispositivo è che è fisso

Ci sono 2 soluzioni alternative "decenti" di cui sono a conoscenza

  • Scrivere un changefixture metodo e, subito prima di eseguire asserts/etc, eseguilo con i parametri di cosa modificare.Dovrebbe andare ad aggiornare il database o qualunque cosa sia necessario fare.

  • Non utilizzare affatto dispositivi e utilizzare una sorta di fabbrica di oggetti o generatore di oggetti per creare ogni volta i tuoi oggetti

Altri suggerimenti

Questa non è una risposta alla mia domanda, ma una soluzione al mio esempio di problema.

Invece di utilizzare più dispositivi o modificare i dispositivi, modifico gli array Model::_schema rimuovendo i campi senza i quali volevo testare.Ciò ha l'effetto che il modello si comporta come se i campi non fossero presenti, ma non sono sicuro che si tratti di un test al 100%.Non penso che sia valido per tutti i casi, ma funziona per il mio esempio.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top