node.js - sinon.js - 如何组织我的 stub ?

标签 node.js unit-testing sinon

我正在使用 mocha + sinon.js + chai。 我有很多测试,有很多 stub 和模拟,所以我的 it() 函数太长。 有什么方法可以在其他文件/配置文件中组织我的 stub 。 我无法将 stub 放入 before() 中,因为每个测试都以不同的方式进行 stub ( stub 相同的对象但具有不同的行为)。

对我来说有什么好主意吗?

tnx:)

最佳答案

您可以使用babel-plugin-inline-json为您的响应加载 json。
例如 安装配置 babel-plugin-inline-json。

//.babelrc:
{
  "plugins": [["inline-json", {"matchPattern": "config"}]]
}

在外部文件中定义您的响应,例如:

//res.config.json
{
  "foo": "bar"
}

在测试中使用它:

const expect = require('chai').expect;
const sinon = require('sinon');

class SomeObject {
    doSomething(){
        return null;
    }
}

describe('Some tests:', function () {    
       it.only('With fake response', () => {
        const obj = require('./res.config');
        const someObject = new SomeObject();
        sinon.stub(someObject,'doSomething').returns(obj);

        const res = someObject.doSomething();

        expect(res).to.haveOwnProperty('foo');
        });

    });
});

您可以有多个 config.json 文件。

关于node.js - sinon.js - 如何组织我的 stub ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42089512/

相关文章:

javascript - 回调没有从 sinon.js fakeServer 触发以调用 $.ajax

javascript - 使用 sinon 测试 javascript apply 方法

node.js - 在 Microsoft Bot Framework 中创建支持两个 LUIS 应用的机器人

javascript - 异步流程图。如何直观地表示异步逻辑

javascript - CasperJS连续运行

database - 单元测试依赖于数据库的窗口服务

javascript - NodeJS 使用 mock-fs 测试 writeFile

python - 如何使用 nosetests 分解 python 测试用例

javascript - MongoDB中如何存储XML格式的数据?

node.js - sinon.stub 不 stub 原始方法