如何使用Chai测试函数的返回值

Mod*_*esq 0 javascript unit-testing chai

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

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

function name(str) {
    return str + ' has come online';
}
Run Code Online (Sandbox Code Playgroud)

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

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

hac*_*ave 6

该测试引发错误是因为它正在检查函数name本身,而不是调用函数的结果。您需要执行以下操作:

expect(name('something')).to.be.a('string');
Run Code Online (Sandbox Code Playgroud)