在nodejs

时间:2017-12-20 20:24:10

标签: javascript node.js testing npm

嘿大家我创建了一个可以管理和控制URL查询字符串的包。 我把它发布给npm。并将一些测试写入包的核心

" parser.js" - 将查询字符串解析为对象

" strigifyer.js" - 使对象成为URL查询字符串

我现在用" mocha"来测试这些文件。和"期待"

有一个主文件可以管理上述文件,并且该文件也可以在不刷新的情况下将字符串查询到URL。它使用window.history对象。

我应该怎样做才能成功测试主文件(index.js)?

我需要窗口和历史记录对象来检查我使用api后是否有变化。

这是包的帮助: https://github.com/nevos12/query-string-manager

谢谢。

1 个答案:

答案 0 :(得分:1)

如果我理解正确,那么公开您的资料库的模块是src/index.js

从index.js的代码样式中,我建议使用sinon来测试代码流。

单元测试可能是:

import sinon from 'sinon'
import qs from 'src/index.js'

it('should reset queryStringObject', () => {
  const pushToUrlSpy = sinon.spy(qs, 'pushToUrl');
  qs.reset(true);
  expect(qs.queryStringObject).to.equal({});
  expect(pushToUrlSpy.called);
  pushToUrlSpy.restore();
})

此代码在pushToUrl()上创建一个间谍,调用reset()并断言queryStringObject现在是一个空对象,pushToUrl()至少被调用一次。最后它会恢复间谍,否则其他测试可能会很奇怪。