【问题标题】:How to test return values on functions with Chai如何使用 Chai 测试函数的返回值
【发布时间】:2017-01-02 17:28:50
【问题描述】:

我正在使用 Chai + mocha + karma 来测试我的 js...

我有一个简单的函数,它将接受一个数字并加 2:

function name(str) {
    return str + ' has come online';
}

我收到一个断言错误,AssertionError: expected [Function: add] to be a string 但我不知道为什么,因为它是一个字符串...

describe("Number", function() {
    it("Should return a string value", function() {
        expect(name).to.be.a('string');
    })
});

【问题讨论】:

  • add 在哪里定义? - 它似乎是一个函数?
  • @hackerrdave 啊对不起错字的朋友!
  • name 确实是一个函数。尝试断言调用名称( name() )的结果

标签: javascript unit-testing chai


【解决方案1】:

测试抛出错误,因为它正在检查函数 name 本身,而不是调用函数的结果。你需要这样做:

expect(name('something')).to.be.a('string');

【讨论】:

  • 如果我想用一些值测试一个函数,但是因为它们是无效的,所以它不会进入函数。是否可以使用chai 测试代码没有到达函数中?
【解决方案2】:

如果你使用assert,你可以这样做:

assert.typeOf(name('someting'),'boolean');

您可以查看documentation了解更多详情

【讨论】:

    猜你喜欢
    • 2015-07-25
    • 2022-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-11
    • 1970-01-01
    • 1970-01-01
    • 2015-06-02
    相关资源
    最近更新 更多