我最近學習終極版,寫單元測試與使用行動創造者和減速器玩笑Redux的單元測試 - 減速器和行動創造者
我寫測試TDD過程的一部分。但我在努力:我可以在減速器測試中使用動作創建器嗎?
import * as types from './../../constants/auth';
import * as actions from './../../actions/auth';
import reducer, {initialState} from './../auth';
我能做到這一點
it('should set isFetching to true',() => {
const expectedState = {
...initialState,
isFetching: true
}
expect(
reducer(initialState, actions.loginPending())
).toEqual(expectedState)
});
,而不是這個?
it('should set isFetching to true',() => {
const expectedState = {
...initialState,
isFetching: true
}
expect(
reducer(initialState, {type: types.LOGIN_PENDING})
).toEqual(expectedState)
});
我來到這無疑是因爲官方文檔使用硬編碼的動作在減速測試:
expect(
reducer([], {
type: types.ADD_TODO,
text: 'Run the tests'
})
).toEqual([{
text: 'Run the tests',
completed: false,
id: 0
}])
我猜使用硬編碼的行動是最好的做法是不是?
對此有相同的看法,主要是爲了避免「維護成本」。但是,正如你聲明的那樣,它們使它成爲聲明式的,對新開發者來說很有幫助。由於測試不是單獨運行,只需要對操作進行嚴格編碼即可。謝謝 –