js单元测试的模块依赖问题
在js中,a模块依赖b模块运行产生的数据(通过import引入b模块,a模块是一堆函数的集合,不包含数据)
我在单独测试a模块时,如何制造一个mock的b模块数据给a模块同时不改变a模块的代码
(貌似java是有这种测试框架的?就是能用mock模块替代依赖模块?)
目前单元测试用的是mocha+karma,webpack转译es6语法
样例代码
a.js
import b from './b'
export function search(id) {
for(let i in b.data) {
if(b.data[i].id === id) {
return b.data[i].value
}
}
return -1
}
a.test.js
import { expect } from 'chai'
import { search } from '../src/a'
describe('search Test', function() {
it('search certain id return its value' , function() {
expect(search(1)).to.equal('value of 1')
})
})
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
试试sinon呗,按你的需求:
补充:
我假设你的
b.js
是如下结构:现在来补一下test: