2017-08-31 5 views
0

assert scheint nicht wie erwartet zu funktionieren.NodeJS-Unit-Test mit Mocha und Supertest - "Assert" scheint nicht wie erwartet zu funktionieren?

Das ist mein package.json:

"devDependencies": { 
    "babel-eslint": "^7.2.3", 
    "backpack-core": "^0.4.1", 
    "mocha": "^3.5.0", 
    "supertest": "^3.0.0" 
    }, 
    "scripts": { 
    "test": "NODE_PATH=./server:./server/modules mocha ./test/*.js --compilers js:babel-core/register --recursive", 
    "dev": "backpack dev", 
    "build": "nuxt build && backpack build", 
    "start": "cross-env NODE_ENV=production node build/main.js" 
    }, 

Mein Test:

'use strict' 

import app from '../server/index' 
import supertest from 'supertest' 
import assert from 'assert' 

const request = supertest.agent(app) 

var _id 
var name 
describe('POST /api/users with data', function() { 
    it('status code should be 200', function (done) { 
    request 
     .post('/api/users') 
     .type('form') 
     .send({name: 'tom'}) 
     .expect('Content-Type', /json/) 
     .expect(200) 
     .end(function(err, res) { 
     console.log(res.body) 
     if (err) return done(err) 

     name = res.body.ops[0].name.toString() 
     _id = res.body.ops[0]._id.toString() 
     console.log(name) 

     assert(name, 'tomx') // should not pass this. 

     done() 
     }) 
    }) 
}) 

Ergebnis:

POST /api/users with data 
{ result: { ok: 1, n: 1 }, 
    ops: [ { id: 'xxx', name: 'tom', _id: '59a7c33ba17bd32431c4134b' } ], 
    insertedCount: 1, 
    insertedIds: [ '59a7c33ba17bd32431c4134b' ] } 
tom 
    ✓ status code should be 200 (54ms) 

Bei assert(name, 'tomx') - Warum übergeben wird? Es ist tom das sollte übergeben werden.

Irgendwelche Ideen?

Antwort

2

assert ist nur eine Abkürzung für assert.ok, die bestätigt, dass das erste Argument truthy ist https://nodejs.org/api/assert.html#assert_assert_value_message

Sie assert.equal oder assert.strictEqual stattdessen verwenden sollten. Eine weitere Möglichkeit ist Modifizieren Sie Ihre Behauptung:

assert(name === 'tomx')

+0

Dank für die Antwort! – laukok

Verwandte Themen