Zombie.js - 如何在DB上检查表单提交的结果?

时间:2016-09-04 21:59:36

标签: javascript node.js mongoose mocha zombie.js

目标:使用Mocha,Zombie.js和Mongoose,我正在尝试测试注册表单。我想确保使用以下代码将用户添加到数据库中:

describe('User Signup', function() {

  before(function(done) { //setup db connection and browser

    conn = mongoose.connect('mongodb://localhost', function(err) {

      browser = new Browser({site: 'http://localhost:3000'});
      done();

    });

  });

  before(function(done) { //go to signup page

    browser.visit('/user/signup', done);

  });

  it('can signup a new user', function(done) {

    browser.fill("input[name='username']", 'johnDoe');
    browser.fill("input[name='pwd']", 'password');
    browser.fill("input[name='pwd_retype']", 'password');
    browser.fill("input[name='city']", 'New York, NY');
    browser.pressButton('#signup-submit').then(function() {

      chai.assert.isOk(browser.success);

      UserModel.findOne({username: 'johnDoe'}, function(er, usr) {

        chai.assert.ifError(er);
        chai.assert.isNotNull(usr); //check if user was added to DB
        done();

      });

    });

  });

});

问题:用户被添加到数据库中,但它被添加为空白用户(没有用户名,密码等)。我检查了处理请求的路由器,并打开console.log打印用户名以查看zombie.js是否填写表单字段,但字段打印为空。我得到以下输出: enter image description here

因此,当mocha测试第一次运行时,我得到一行空白的用户名值SAVE ATTEMPT FOR:。但是,当我更改文档并保存时,除了正确的值SAVE ATTEMPT FOR: johnDoe之外,我再次获得输出。

我不明白为什么在保存我的js文件时会再次发送请求。当然,在我的测试评估之后会发生这种情况。任何人都有关于可能出现问题的想法吗?

0 个答案:

没有答案