【发布时间】:2015-04-29 14:04:33
【问题描述】:
所以我正在使用 Chai、rewire、sinon 和 sinon-chai 的测试套件来测试一些节点 JavaScript。这是我第一次尝试设置它,所以我可以使用一些指针。我正在尝试测试的功能如下所示:
UserRoles.get = function(ccUrl, namespace, environment, ccToken, authPath) {
var crowdControl = new CrowdControl(ccUrl, namespace, environment, ccToken, authPath);
return q.Promise(function(resolve, reject) {
crowdControl.get().then(resolve).fail(reject).done();
});
};
在导出为 UserRoles 的文档中。所以我的初始设置工作正常,我遇到麻烦的是模拟测试这个功能。我正在尝试模拟新的 CrowdContol 部分,所以我的尝试看起来像这样:https://jsfiddle.net/d5dczyuk/。
所以我正在尝试
testHelpers.sinon.stub(CrowdControl, "UserRoles");
拦截和存根
var CrowdControl = require('./crowdcontrol');
然后运行
userRoles.get;
console.log(CrowdControl);
而且似乎没有调用存根(它记录了它是一个存根,但没有记录它已被调用)。我还需要对 crowdControl.get() 进行存根,但是我试图让这个简单的部分首先工作。不知道我需要做些什么不同才能让它在这里工作。这是我第一次在 node 中进行单元测试,我在 angular 中做了一堆我可以“模拟”CrowdControl,但我不确定它在 node 中是如何工作的。
只是为了澄清我只是在检查是否会在传入这些变量的情况下调用 CrowControl,我应该只存根它吗?但我也想模拟 crowdControl 以便我可以强制 get 返回。
编辑:这是我的第二次尝试:https://jsfiddle.net/5m5jwk5q/
【问题讨论】:
标签: javascript angularjs node.js unit-testing