2017-10-16 134 views
0

我不知道爲什麼我不斷收到此錯誤。每當我跑NPM測試我得到這個完整的錯誤:Supertest錯誤:預計'[]'響應正文,得到'[「」]'

1) Listing subscriptions on /subscriptions 
    Returns initial subscriptions: 
Error: expected '[]' response body, got '[""]' 
    at error (node_modules\supertest\lib\test.js:299:13) 
    at Test._assertBody (node_modules\supertest\lib\test.js:216:14) 
    at Test._assertFunction (node_modules\supertest\lib\test.js:281:11) 
    at Test.assert (node_modules\supertest\lib\test.js:171:18) 
    at Server.assert (node_modules\supertest\lib\test.js:131:12) 
    at emitCloseNT (net.js:1543:8) 
    at _combinedTickCallback (internal/process/next_tick.js:71:11) 
    at process._tickCallback (internal/process/next_tick.js:98:9) 

在我app.js文件:

var express = require('express'); 
 
var app = express(); 
 
var bodyParser = require('body-parser'); 
 
var urlencode = bodyParser.urlencoded({ extended: false }); 
 

 
app.use(express.static('public')); 
 

 
var redis = require('redis'); 
 
if (process.env.REDISTOGO_URL) { 
 
    var rtg = require('url').parse(process.env.REDISTOGO_URL); 
 
    var client = redis.createClient(rtg.port, rtg.hostname); 
 
    client.auth(rtg.auth.split(":")[1]); 
 
} else { 
 
    var client = redis.createClient(); 
 
    client.select((process.env.NODE_ENV || 'development').length); 
 
} 
 

 
app.get('/subscriptions', function (req, res) { 
 
    client.hkeys('subscriptions', function (err, names) { 
 
     if (err) throw err; 
 
     res.json(names); 
 
    }); 
 
}); 
 

 

 
app.post('/subscriptions', urlencode, function (req, res) { 
 
var newSubscription = req.body; 
 
if(!newSubscription.name || !newSubscription.date) { 
 
    res.sendStatus(400); 
 
    return false; 
 
} 
 
client.hset('subscriptions', newSubscription.name, newSubscription.date, 
 
function (err) { 
 
    if (err) throw err; 
 
    res.status(201).json(newSubscription.name); 
 
}); 
 
});

test.js文件:

var request = require('supertest'); 
 
var app = require('./app'); 
 

 
var redis = require('redis'); 
 
var client = redis.createClient(); 
 
client.select('test'.length); 
 
client.flushdb(); 
 

 
describe('Requests to the root path', function() { 
 

 
    it('Returns a 200 status code', function (done) { 
 

 
     request(app) 
 
      .get('/') 
 
      .expect(200, done); 
 
    }); 
 
    it('Returns a HTML format', function(done) { 
 
     
 
     request(app) 
 
      .get('/') 
 
      .expect('Content-Type', /html/, done); 
 
    }); 
 
    it('Returns an index file with Subscriptions', function(done) { 
 

 
     request(app) 
 
      .get('/') 
 
      .expect(/subscriptions/i, done); 
 
    }); 
 
}); 
 

 
describe('Listing subscriptions on /subscriptions', function() { 
 

 
    it('Returns 200 status code', function (done) { 
 

 
     request(app) 
 
      .get('/subscriptions') 
 
      .expect(200, done); 
 

 
    }); 
 
    it('Returns JSON format', function (done) { 
 

 
     request(app) 
 
      .get('/subscriptions') 
 
      .expect('Content-Type', /json/, done); 
 
    }); 
 

 
    it('Returns initial subscriptions', function (done) { 
 

 
     request(app) 
 
      .get('/subscriptions') 
 
      .expect(JSON.stringify([]), done); 
 
    }); 
 
});

任何幫助將不勝感激。謝謝。

回答

0

結束了在地方的

client.flushdb();

它沖掉現有的所有數據使用

client.flushall();

(雖然我沒有確定它是如何開始的)。之後我將它改回來,它工作正常。

相關問題