【发布时间】:2017-06-19 02:21:41
【问题描述】:
我正在进行单元测试,我想测试 redux 存储中的值是否根据我的说明进行了更新。
我的module reducer 单元测试包含多个测试套件,有些正在更新状态,有些没有,我不知道为什么......所以我经过一天的测试和研究后来到这里,看看是否有人可能知道我的错误的原因。任何建议表示赞赏。
这是我的模块缩减器代码的一部分:
export function createModuleReducer() {
return function moduleReducer(state: PageModules = INITIAL_STATE,
action): PageModules {
if (!action.meta || !action.meta.status) {
return state;
}
switch (action.type) {
case INITIALIZE:
case CREATE_SIGNATURES_ARRAY:
return tassign(state, {signatures: action.payload['document']});
这是我的模块减速器规范代码的一部分:
const baseState = {
signatures: []
};
let state;
…
describe('Reducer', () => {
…
beforeEach(async(() => {
TestBed.configureTestingModule({
…
MockNgRedux.reset();
state = JSON.parse(JSON.stringify(baseState));
}));
it('should call CREATE_SIGNATURES_ARRAY reducer', async(() => {
const actionCreateSignature = {
type: CREATE_SIGNATURES_ARRAY,
meta: { status: 'create_signature'},
payload: { 'document': … }
};
createModuleReducer()(state, actionCreateSignature);
mockNgRedux.dispatch(actionCreateSignature);
expect(state.signatures).toEqual(…)
}));
}
使用console.log,我知道module reducer会相应地更新存储,但规范中的值没有改变。
【问题讨论】:
标签: angular unit-testing typescript jasmine redux