javascript - Mocha 测试总是通过

标签 javascript testing mocha.js

我想用 mocha 在我的网页上测试基本身份验证:

describe('Test GET /messages', function(){

    describe('Test HTTP basic authentication', function(){

       it('should return 200 because right credentials', function(done){
           request.get(createCustomRequest(true, "/messages", "test", "test"), function(err, res, body){
               if (err) {
                   console.error(err)
               } else {
                    // Whatever, it will always pass
                    assert.equal(2400, res.statusCode);
               }
           }, done());
        });
  });

function createCustomRequest(withAuth, service, username, password){
    if(!withAuth){
        return {
            url: URL+service,
            followRedirect: false
        };
    } else {
        return {
            url: URL+service,
            followRedirect: false,
            headers: {
                'Authorization': createCredentials(username, password)
            }
        };
    }
}

从前面的代码来看,我不明白为什么测试总是通过。我认为这与 done() 回调有关。

我做错了什么?

最佳答案

done() 应该在 request.get() 的回调中被调用:

it('should return 200 because right credentials', function(done) {
  request.get(createCustomRequest(true, "/messages", "test", "test"), function(err, res, body){
    if (err) {
      done(err);
      return;
    }
    assert.equal(2400, res.statusCode);
    done();
  });
});

关于javascript - Mocha 测试总是通过,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37410959/

相关文章:

javascript - eslint 应该列在项目的依赖项中,而不是 devDependencies

Javascript clearInterval 不清除

javascript - Onblur,下一个将获得焦点的控件是什么?

javascript - Angularjs,对表中的选定复选框应用操作

javascript - 几秒钟后 Angular 引导弹出窗口隐藏

java - HTMLUnit 可以在密码字段中输入数据吗?

ios - calabash-ios 物理设备测试,应用程序启动但崩溃

java - spy 和直接对象的区别

node.js - Mocha 忽略了一些测试,尽管它们应该运行

mocha.js - mocha - 如何列出将要执行的文件