sinon.js - 如何组织我的存根?

时间:2017-02-07 12:07:59

标签: node.js unit-testing sinon

我使用的是mocha + sinon.js + chai。 我有很多测试,有很多存根和模拟,所以我的it()函数太长了。 有没有办法在其他文件/配置文件中组织我的存根。 我不能将存根放在before()中,因为每个测试都以不同的方式存根(存根相同的对象但具有不同的行为)。

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

tnx:)

1 个答案:

答案 0 :(得分:0)

您可以使用babel-plugin-inline-json为响应加载json。
例如 安装configure 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 文件。