2016-08-30 1 views
0

Mon code ne fait pas ce qu'il devrait. Tous les Jasmine expect() qui sont dans une fonction de callback de fonction end() supertest, même s'ils ne le devraient pas.Jasmine `ne m'attend jamais 'dans superagent` end`

const app = require('../server') 
const request = require('supertest') 

describe('Client', function() { 
    const agent = request.agent(app) 

    it('connects to the server', function() { 
    agent.post('/users/register/foobar').end(function(err, res) { 
     done() 
     expect(true).toBe(false) // Doesn't fail 
    } 
    }) 
}) 

Extrait package.json:

"devDependencies": { 
    "jasmine": "^2.4.1", 
    "supertest": "^2.0.0" 
} 

Les versions réelles données par npm list sont [email protected] et [email protected].

Je pense que end() ne fait jamais appel à sa fonction, mais j'ai juste commencé hier avec tout cela et je ne sais pas quoi faire pour résoudre le problème.

Voyez-vous mon erreur?


Modifier

Comme suggéré, je suis passé des lignes pour mettre le done() à la fin, toujours pas de changement, cependant.

+0

pourquoi appelez-vous fait avant l'attendre? – chchrist

Répondre

2

Je pense que vous avez tort d'utiliser la fonction "done". Essayez:

it('connects to the server', function(done) { 
agent.post('/users/register/foobar').end(function(err, res) { 
    expect(true).toBe(false); // Doesn't fail 
    done(); 
} }) 

Pour plus de détails, consultez la documentation de jasmin: Jasmine documentation: Asynchronous Support

+0

Toujours pas de changement. – SteeveDroz

+0

Nevermind, je n'ai pas déclaré le paramètre 'done'. Vous avez aidé! – SteeveDroz