摩卡测试分解和回溯

时间:2015-04-01 12:18:28

标签: javascript exception-handling mocha

我运行了许多看起来像这样的Mocha测试:

it('should fail blabla', function () {
    return <functionThatReturnsAPromise>()
        .then(function () {
            assert(false);
        }, function (err) {
            assert.strictEqual(err.message, 'Foobar is undefined');
            assert.strictEqual(err.code, 'EUNDEFINEDFOOBAR');
        });
});

我的测试中唯一不同的是功能代码消息

我想像这样分解代码:

function shouldBeRejected(promise, code, message) {
    return promise
        .then(function () {
            assert(false);
        }, function (err) {
            assert.strictEqual(err.code, code);
            assert.strictEqual(err.message, message);
        });
}
(...)
it('should fail blabla', function () {
    return shouldBeRejected(<functionThatReturnsAPromise>(),
                            'EUNDEFINEDFOOBAR', 'Foobar is undefined');
});

它有效,但是当某些测试失败时,我的所有回溯都会引用shouldBeRejected函数,因此,我失去了有关失败的真实测试的所有信息。
有没有办法让更多的智能&#34; backtrace指向间接引发错误的shouldBeRejected调用?也许在某处使用captureStackTrace?

0 个答案:

没有答案