首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NodeUnit -测试异步函数

NodeUnit -测试异步函数
EN

Stack Overflow用户
提问于 2015-02-23 18:37:32
回答 1查看 628关注 0票数 0

我想用nodeunit测试异步函数返回的结果。我有以下测试:

代码语言:javascript
复制
module.exports = {
  createFail: function(assert) {
    var user = new CRUDUser({ firstName: 'Node' });

    assert.equal(undefined, user.id);

    user.create(function(res) { // user.create() makes an async AJAX call and should call this function back
      assert.equal(false, res.success);
      assert.equal(undefined, user.id); // user not created cause 'lastName' can't be null

      console.log('#####');
      assert.done();
    });
  }
};

但是,当我运行它时,我会得到以下错误:

代码语言:javascript
复制
FAILURES: Undone tests (or their setups/teardowns): 
- createFail

To fix this, make sure all tests call test.done()

如果我将assert.done();调用移到回调函数之外,则测试将在AJAX调用完成之前结束。

我还尝试在测试开始时添加assert.expect(3);,以使其“等待”,直到回调函数调用assert.done();,但我得到了与上面相同的错误。

在所有情况下,预期的#####显然不会输出到控制台。我做错什么了??

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-23 21:02:01

根据您的输出,我的第一个理论是user.create根本不调用回调函数。调试到其中,并确保在所有情况下(成功、失败、超时等),它实际上调用了回调函数。换句话说,您的测试代码看起来可能没问题,但是您正在测试的代码可能存在bug。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28680911

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档