2015-07-07 5 views
6

Ich bin verwirrt, wenn ich also SuperTest verwende, die anscheinend so aussieht, als hätte es eine eigene Erwartungsbehauptung, dann muss ich mir keine Sorgen über Chai machen? Oder wenn ich Chai brauche, weiß Supertest davon und benutzt es als Erwartungsmechanismus?SuperTest erwartet gegen Chai.expect

+0

Ich bin verwirrt, was die Frage ist hier? Möchten Sie die inneren Abläufe der Test-Frameworks und Assertion-Bibliotheken verstehen? – Clarkie

+0

Wenn Sie SuperTest verwenden, um eine Anfrage zu stellen, und Sie beginnen, mit 'expect' zu behaupten, nehme ich an, da ich über die Chai-Assertion-Bibliothek definiert habe, dass es die verwendete Bibliothek ist. Mit anderen Worten: SuperTest hat keine eigene Assertion-Library? Sie müssen ihm sagen, welche Bibliothek, indem Sie die expect-Variable wie in Mocha einrichten und dann SuperTest in der Lage ist, diese Variable irgendwie zu nehmen, eine Anhängen an das Ende seiner Anfrage Funktionsaufruf – PositiveGuy

+0

hmm sah wieder SuperTest-Dokumente und Es sagt, dass es SuperAgents "expect" -Funktion verwendet, wie es aussieht, weil es sagt "HTTP-Behauptungen leicht gemacht durch Super-Agent." Aber dann heißt es auch: 'SuperTest funktioniert mit jedem Testframework, hier ist ein Beispiel, ohne irgendein Testframework zu verwenden:' Ich bin also hier verwirrt. – PositiveGuy

Antwort

10

SuperTest erweitert SuperAgents request-Objekt um eine expect-Funktion. Es funktioniert nicht ganz wie Chais expect Assertion, aber kann verwendet werden, um den http-Response-Status und die Header zu bestätigen, und kann mit Chais expect gemischt werden.

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. Fragen Sie sich einfach, welche Situation Sie in einem BDD-Test haben möchten, indem Sie SuperTests "erwarten" und dann direkt nach dem Gebrauch ein Chai "erwarten" verwenden. Ich meine, sobald Sie etwas erwarten, und es ist wahr, Ihr BDD Test besteht ... Ich sehe keine Notwendigkeit für Chai erwarten dann beim Testen der Integration Anfrage/Antworten in Ihrem BDD oder andere Integrationstests ... – PositiveGuy