基本的な MEAN スタックを使用し、認証プロセスにパスポートを使用してログイン プロセスを構築しました。
ログインプロセスが機能していることを確認するためのテストをセットアップしようとしています。ここでログイン部分を行うために、私が使用したコードは次のとおりです。
it ('login', function(done) {
agent.post(config.web.vhost + '/login')
.send({ email: 'bruce@wayne.inc', password: 'batman' })
.end(function(err, res) {
if (err) console.log('error' + err.message);
res.should.have.status(200);
done();
});
});
次のエラーが表示されます。
エラーメールはありません: bruce@wayne.inc ․エラーエラーはありませんソケットがハングアップします
1 passing (2s)
1 failing
1) User login:
Uncaught TypeError: Cannot read property 'should' of undefined
ルートと資格情報が適切であることはわかっていますが、ここで何が機能していないのかわかりません。これはユーザー テストの最初のステップであるため、おそらく正しい結果が得られていません。
これが私のテストの残りの部分です:
var should = require("should");
var mongoose = require('mongoose');
var request = require('superagent');
var agent = request.agent();
var config = require("../settings/conf");
var dbUrl = require("../config/database.js");
var User = require('../server/models/user');
var db;
describe('User', function() {
before(function(done) {
db = mongoose.connect(dbUrl.url);
done();
});
after(function(done) {
mongoose.connection.close()
done();
});
beforeEach(function(done) {
var user = new User({
email: 'bruce@wayne.inc',
password: 'batman',
firstName: 'Bruce',
lastName: 'Wayne'
});
user.save(function(err, user) {
if (err) console.log('error' + err.message);
else console.log('no error');
done();
});
});
it('find a user by username', function(done) {
User.findOne({ email: 'bruce@wayne.inc' }, function(err, user) {
user.email.should.eql('bruce@wayne.inc');
console.log(" email: ", user.email)
done();
});
});
it ('login', function(done) {
agent.post(config.web.vhost + '/login')
.send({ email: 'bruce@wayne.inc', password: 'batman' })
.end(function(err, res) {
if (err) console.log('error' + err.message);
res.should.have.status(200);
done();
});
});
afterEach(function(done) {
User.remove({ email: 'bruce@wayne.inc' }, function() {
done();
});
});
});