Jul*_*333 5 unit-testing constants variable-declaration angular
我得到
参考错误:initialState 未定义
当我将 initialState 声明为 const in 时beforeEach(()=> {...。那不应该工作吗?
describe('register reducer', () => {
beforeEach(() => {
const initialState = UsersService.getInitialUsersState();
})
it('should return the initial state', () => {
expect(usersReducer(undefined, [])).toEqual(initialState);
});
it('Toggle isBaby or sitter', () => {
deepFreeze(initialState);
let newState = initialState;
newState.isBaby = true;
expect(
usersReducer(initialState, {
type: types.UsersActions.SET_TYPE,
payload: true
})).toEqual(newState);
});
Run Code Online (Sandbox Code Playgroud)
虽然确实beforeEach在每次测试之前运行,但如果您这样做,initialState则仅在 范围内可见,请将其beforeEach更改为:
describe('register reducer', () => {
let initialState;
beforeEach(() => {
initialState = UsersService.getInitialUsersState();
})
...
Run Code Online (Sandbox Code Playgroud)
这个问题真的很老,但只是在这里为遇到这个问题的其他人提供一个工作示例。这是您可以做到的一种方法:
describe('register reducer', () => {
let initialState
beforeEach(() => {
initialState = UsersService.getInitialUsersState();
})
it('should return the initial state', () => {
expect(usersReducer(undefined, [])).toEqual(initialState);
});
it('Toggle isBaby or sitter', () => {
deepFreeze(initialState);
let newState = initialState;
newState.isBaby = true;
expect(
usersReducer(initialState, {
type: types.UsersActions.SET_TYPE,
payload: true
})
).toEqual(newState)
})
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5715 次 |
| 最近记录: |