Javascript Zombie.js-如何在DB上检查表单提交的结果?
目标:使用Mocha、Zombie.js和Mongoose,我正在尝试测试注册表单。我希望确保使用以下代码将用户添加到数据库:Javascript Zombie.js-如何在DB上检查表单提交的结果?,javascript,node.js,mongoose,mocha.js,zombie.js,Javascript,Node.js,Mongoose,Mocha.js,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
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是否填写表单字段,但字段打印为空。我得到以下输出:
因此,当mocha测试第一次运行时,我得到一行savetrument FOR:
,其中用户名值为空。但是,当我更改文档并保存时,我会再次获得输出,除非使用正确的值save-trument FOR:johnDoe
我不明白为什么在保存js文件时会再次发送请求。当然,这是在我的测试评估之后发生的。有人知道问题出在哪里吗