2015-07-07 6 views
6

Sono confuso, quindi se uso SuperTest che a quanto pare ha una sua asserzione, non devo preoccuparmi di usare Chai? O quando richiedo Chai, Supertest lo sa e lo utilizza come meccanismo previsto?L'aspettativa di SuperTest contro Chai.expect

+0

Sono confuso su quale sia la domanda? Vuoi capire il funzionamento interno dei framework di test e delle librerie di assertion? – Clarkie

+0

Quando si utilizza SuperTest per fare una richiesta e si inizia a far valere l'uso di 'expect' presumo dal momento che ho definito mi aspetto tramite la libreria di asserzione Chai che quella è la libreria che sta usando. In altre parole, SuperTest non ha una propria libreria di asserzioni, giusto? Devi dirgli quale libreria impostando la variabile expect come fai in Mocha e poi SuperTest è in grado di usare questa variabile in qualche modo per aggiungerla alla fine della sua funzione richiesta chiamata – PositiveGuy

+0

hmm, basta guardare nuovamente i documenti di SuperTest e Dice che sta usando la funzione 'expect' di SuperAgent perché assomiglia alle "asserzioni HTTP semplificate tramite super-agente". Ma poi dice anche che 'SuperTest funziona con qualsiasi framework di test, ecco un esempio senza usare alcun framework di test:' quindi sono confuso qui. – PositiveGuy

risposta

10

SuperTest estende l'oggetto request di SuperAgent per includere una funzione expect. Non funziona come l'asserzione expect di Chai, ma può essere utilizzata per affermare lo stato e le intestazioni della risposta http e può essere combinata con Chai expect.

request(app). 
get('/'). 
expect(200). // request.expect, is status code 200? 
expect('Content-Type', /json/). // request.expect, does content-type match regex /json/? 
expect(function(res){ // request.expect, does this user-provided function throw? 
    // user-provided function can include Chai assertions 
    expect(res.body).to.exist; 
    expect(res.body).to.have.property('status'); 
}). 
end(done); 
+0

thx. Basta chiedersi quale situazione vorrebbe in un test BDD affermare usando 'aspettarsi' di SuperTest e poi subito dopo usare un Chai 'expect'. Voglio dire una volta che ti aspetti qualcosa ed è vero, il tuo test BDD passa ... Non vedo proprio la necessità che Chai si aspetti quando testare le richieste/risposte di integrazione nel tuo BDD o altri test di integrazione ... – PositiveGuy