में मोचा/सुपरटेस्ट के साथ रीडायरेक्ट करते हैं, मुझे mocha, supertest, और should (और कॉफ़ीस्क्रिप्ट) का उपयोग करके एक एक्सप्रेस प्रोजेक्ट में पास करने के लिए निम्न एकीकरण परीक्षण नहीं मिल रहा है।परीक्षण अनुरोध जो नोड
परीक्षण
should = require('should')
request = require('supertest')
app = require('../../app')
describe 'authentication', ->
describe 'POST /sessions', ->
describe 'success', (done) ->
it 'displays a flash', (done) ->
request(app)
.post('/sessions')
.type('form')
.field('user', 'username')
.field('password', 'password')
.end (err, res) ->
res.text.should.include('logged in')
done()
प्रासंगिक आवेदन कोड
app.post '/sessions', (req, res) ->
req.flash 'info', "You are now logged in as #{req.body.user}"
res.redirect '/login'
विफलता
1) authentication POST /sessions success displays a flash:
AssertionError: expected 'Moved Temporarily. Redirecting to //127.0.0.1:3456/login' to include 'logged in'
जाहिर है, आवेदन कोड कुछ भी उपयोगी नहीं करता है। मैं सिर्फ परीक्षा उत्तीर्ण करने की कोशिश कर रहा हूं।
एंड फ़ंक्शन के बाहर अपेक्षा (res.text.should.include('logged in')
) को रखने और expect
फ़ंक्शन के अंदर समान परिणाम उत्पन्न होते हैं। मैंने फ़ंक्शन कॉल की विविधता भी कोशिश की है, उदाहरण के लिए .type('form')
कॉल को हटाकर, और का उपयोग करकेकॉल के बजाय।
यह कुछ भी मतलब है, तो एप्लिकेशन को जब यह स्थानीय स्तर पर चल रहा है करने के लिए एक कर्ल पोस्ट अनुरोध भेजने के एक ही आउटपुट (Moved Temporarily. Redirecting to //127.0.0.1:3456/login
)
मुझे लगता है पैदावार इस एक छोटी सी त्रुटि है। शायद मैं कुछ कोड कोड या परीक्षण कोड में भूल रहा हूँ।
कोई सुझाव?
संपादित करें 1: यह भी ध्यान देने योग्य है कि ब्राउज़र में सबमिट बटन पर क्लिक करते समय मुझे अपेक्षित परिणाम (एक फ्लैश संदेश) मिलता है।
संपादित करें 2: आगे की जांच की किसी भी अनुप्रेषित Moved Temporarily. Redirecting to ...
प्रतिक्रिया शरीर में परिणाम उत्पादन को दर्शाता है। इससे मुझे आश्चर्य होता है कि ऐप में निर्यात करने के तरीके में कोई समस्या है या नहीं।
var express = require('express')
var app = express();
module.exports = app;
कृपया एक नज़र डालें: http://stackoverflow.com/questions/14001183/how-to-authenticate-supertest-requests-with-passport/37609721#37609721 –