Sinon Spy没有被正确的参数调用

时间:2017-04-26 15:15:07

标签: javascript node.js tdd mocha sinon

背景

我正在尝试通过阅读有关该主题的书籍来学习如何在TDD范例之后执行RESTful API(它是用brazillian编写的):

作者鼓励使用sinon.jsmocha.js

我接近尾声,但我很想通过gnomeController的测试。

问题

问题是我正在使用sinon断言我使用给定的响应对象调用gnomeController的{​​{1}}方法,这是一个间谍。

这个间谍是为了确保我使用"错误"来调用响应方法,但看起来我正在调用没有任何参数的响应,这非常令人困惑。

代码

gnomeController.js

get

gnomeTest.js

module.exports = aGnomeModel => {

    let Gnome = aGnomeModel;

    function get(req, res){
        return Gnome.find({})
            .then(gnomes => res.send(gnomes))
            .catch(err => res.status(400).send(err));
    }

    return Object.freeze({
        get
    });
};

问题

我正在使用这两个库的最新版本。

  1. 我的代码有什么问题,为什么没有参数调用响应?

1 个答案:

答案 0 :(得分:0)

解决方案

经过大量调试后,我发现解决方案是替换:

 function get(req, res){
        return Gnome.find({})
            .then(gnomes => res.send(gnomes))
            .catch(err => res.status(400).send(err));
    }

使用:

 function get(req, res){
        return Gnome.find({})
            .then(gnomes => res.send(gnomes))
            .catch(err => res.status(400).send(err.name));
    }

书中没有解释。有点希望我可以提供更多的反馈,但到目前为止它就是它。