Unit testing 如何模拟库函数(测试redux操作创建者)
我在“Redux世界”中有个例子 我有action creator(简单功能): 我对它进行了测试(): 当然,我有不同的v4 ID: 在我的测试中直接使用v4(更改:Unit testing 如何模拟库函数(测试redux操作创建者),unit-testing,mocha.js,redux,Unit Testing,Mocha.js,Redux,我在“Redux世界”中有个例子 我有action creator(简单功能): 我对它进行了测试(): 当然,我有不同的v4 ID: 在我的测试中直接使用v4(更改:id:'fake-v4-id'->id:v4())并不能解决问题。ID将是不同的 我需要什么?模仿,超越?还是别的什么?我该怎么做 我的测试框架是Mocha,断言库是-Chai。Recipie是: 安装 在babelrc中设置testenv(类似这样的东西) { “预设”:[“es2015”、“第0阶段”、“反应”、“反应hmr
id:'fake-v4-id'->id:v4()
)并不能解决问题。ID将是不同的
我需要什么?模仿,超越?还是别的什么?我该怎么做
我的测试框架是Mocha,断言库是-Chai。Recipie是:
import { __RewireAPI__, addTodo } from '../actions'
...
describe('Todo actions', () => {
before(() => {
__RewireAPI__.__Rewire__('v4', () => 'fake-v4-id')
})
it('should create an action for add todo', () => {
const text = 'test v4 call'
const expectedAction = {
type: 'ADD_TODO',
text,
id: 'fake-v4-id',
}
expect(addTodo(text)).toEqual(expectedAction)
})
})
运行
npm测试
该示例不应该在之后包含一个调用ComponentToTest.\uuuuu重置依赖关系('v4')的代码>?@machineghost,嗯。。。可能是。看起来很棒,但我不知道这件事。
import { addTodo } from '../actions'
...
it('should create an action for add todo', () => {
const text = 'test v4 call'
const expectedAction = {
type: 'ADD_TODO',
text,
id: 'fake-v4-id', // ???
}
expect(addTodo(text).toEqual(expectedAction)
})
import { __RewireAPI__, addTodo } from '../actions'
...
describe('Todo actions', () => {
before(() => {
__RewireAPI__.__Rewire__('v4', () => 'fake-v4-id')
})
it('should create an action for add todo', () => {
const text = 'test v4 call'
const expectedAction = {
type: 'ADD_TODO',
text,
id: 'fake-v4-id',
}
expect(addTodo(text)).toEqual(expectedAction)
})
})