2016-12-19 4 views
1

Ich versuche, einen node-jasmine Test zum ersten Mal einzurichten. Zur Zeit versuche ich nur einen einfachen Test zu erstellen, um zu sehen, dass der Index den Status 200 zurückgibt.Node-Jasmine nicht fehlgeschlagen, wenn erwartet

Es schien zu funktionieren, aber ich bemerkte, egal was ich die Statusnummer ändern, es scheitert nie, zum Beispiel Status zu erwarten 666, aber ich habe nicht einen Fehler:

const request = require("request") 
const helloWorld = require("../app.js") 
const base_url = "http://localhost:3002/" 

describe("Return the index page", function() { 
    describe("GET /", function() { 
    it("returns status code 200", function() { 
     request.get(base_url, function(error, response, body) { 
     expect(response.statusCode).toBe(666) 
     done() 
     }) 
    }) 
    }) 
}) 

Welche zurück:

Finished in 0.009 seconds 
1 test, 0 assertions, 0 failures, 0 skipped 

Wenn ich hier einen Fehler zu erwarten.

Antwort

1

Sie müssen den Rückruf done als Parameter für die Testfunktion angeben.

ZB:

it("returns status code 200", function(done) { 
    request.get(base_url, function(error, response, body) { 
    expect(response.statusCode).toBe(666) 
    done(); 
    }) 
}) 

Ohne diese wird der Test vor der asynchronen Anforderung kehrt abgeschlossen.

0

Während es aussieht, als ob Sie Ihre Antwort gefunden haben, kam ich mit einem ähnlichen Problem hierher. Mein Problem war, dass die Anfrage fehlgeschlagen ist und die Behauptung nie erreicht wurde. Sobald ich einen Fehler wie unten hinzugefügt habe, habe ich mein Problem gefunden!

Ich bin neu in Jasmine, aber es scheint merkwürdig, dass eine Ausnahme in Ihrem Test nicht mehr sichtbar oder offensichtlich wäre, also wenn jemand Feedback darüber hat, wie man besser damit umgehen kann, lass es mich wissen.

const request = require("request") 
const helloWorld = require("../app.js") 
const base_url = "http://localhost:3002/" 

describe("Return the index page", function() { 
    describe("GET /", function() { 
    it("returns status code 200", function() { 
     request.get(base_url, function(error, response, body) { 
     if (error) 
      console.log("Something borked: ", error); 

     expect(response.statusCode).toBe(666) 
     done() 
     }) 
    }) 
    }) 
}) 
Verwandte Themen