0

基本的な 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();
    });
  });
});
4

1 に答える 1

0

あなたが見ている失敗は次connect ECONNREFUSEDのようなものであることに気付きましたagent.post.

config.web.vhost の値が正しく設定されていないか、スーパーエージェントが探しているものに対して正しい形式になっていないと思います (たとえば、スーパーエージェントは「http://」をオンにした完全な絶対 URL を必要とする場合があります) vhost 値はホスト名のみの場合があります)。

于 2014-06-20T20:26:38.337 に答える