Sto provando a implementare i test per il Django Rest Framework. La maggior parte dei miei test è passata e la loro impostazione è andata a buon fine, ma ora sto riscontrando un problema in cui uno assertEqual
non ha mai successo perché continua a confrontare JSON con OrderedDict.Test DRF: al posto di JSON viene restituito OrderedDict
Non ho idea da dove derivi OrderedDip dal momento che il DR dovrebbe restituire JSON (giusto?) Solo per.
Potrebbe essere possibile che l'ambiente di test analizzi il JSON prima del confronto? Questo farebbe schifo.
Sto facendo un test integrato che verifica solo i dati nella risposta di una richiesta GET a una determinata risorsa, lo faccio in base alle apparecchiature JSON. Non sto testando un componente specifico del framework REST poiché le mie implementazioni dei componenti sono così semplici che sono già state testate dai test nel progetto DRF.
In ogni caso, spero che qualcuno possa aiutarmi!
Dovrai essere più specifico. Un serializzatore è responsabile della conversione dei dati in un dizionario ed è il renderer che lo trasforma in JSON. Quale bit stai testando esattamente? –
Lo ha modificato! Ho già risolto il mio problema, ho avuto un problema nei miei dispositivi.Ma sono curioso di sapere perché confronta un OrderedDict con JSON e non con JSON con JSON quindi rispondi se hai tempo :) – ZvL
Se hai bisogno di assicurarti l'ordine delle chiavi nella tua risposta JSON, allora puoi usare OrderedDict per componi la tua risposta. Non appena attraversa la porta e esce allo scoperto, diventa un semplice JSON, con le chiavi in un ordine specifico. Poiché stai utilizzando l'infrastruttura di test di Django, la tua risposta non passa attraverso la porta, ma viene restituita alla tua testcase per essere ispezionata da te. Tale comportamento rende possibile testare un dict (JSON) rispetto a OrderedDict. Normalmente questo non dovrebbe essere un problema: basta asserire sulle singole chiavi. – Roba