s2s: redux에서 reducer 테스트. 테스트를 작성할 필요가 없을 수도 있습니다.
왜 reducer 테스트가 중요합니까?
flow 환경에서 타입에 의해 반환되는 State가 담보되어 있어도, 여전히 reducer의 테스트는 중요합니다.
간단한 예를 들면,
INCREMENT
로 count가 +1 되는 로직이 있을 때, number 형이라고 보증되고 있어도, +1 되어 있는지-1 되고 있는지, +100000 되고 있는지에 대해서는 보증되지 않기 때문입니다.그 논리를 담보하는 것이 테스트의 역할입니다.
reducer 테스트를 작성하는 방법
flow 환경과 그 이외로 테스트의 작성 방법이 다릅니다.
트래디셔널한 테스트라면
{type: ACTION}
의 형식으로 테스트를 쓰는 경우가 많다고 생각합니다만, flow 환경이라면 Action 가 형태로 담보되어 있기 때문에 액션 크리에이터를 그대로 실행해 씁니다.전통적인 쓰는 방법도 좋지만, 이쪽이 보완도 효과가 있으므로 추천합니다.
이 글은 redux 공식입니다.
의 flow의 샘플에 있는 쓰는 방법과 같기 때문에, 신경이 쓰이는 사람은 확인하면 좋다고 생각합니다.
테스트 케이스 자동 생성
이제 시작의 동영상을 설명합니다.
확실히 말해서, 테스트를 작성하는 것은 귀찮습니다.
그리고 테스트를 쓰는 것을 잊을 가능성을 생각해야합니다.
그래서 코드를 쓰는 순간에 테스트가 거기에 있는 것이 베스트입니다.
그리고 이것은 s2s로 쉽게 실현할 수 있습니다.
s2s에 대해서는 다음 기사를 읽으십시오.
Source to Source라는 개념과 그 사용법을 정리하고 있습니다.
안녕 보일러 플레이트. s2s로 빠른 redux 애플리케이션 구축
GitHub는 여기입니다.
akameco/s2sSource to Source
위의 기사를 읽은 전제를 이야기하면
babel-plugin-s2s-reducer-test-case
를 s2s에 추가하여 동영상처럼 테스트 케이스를 생성 할 수 있습니다.s2s.config.js
에 다음을 추가하십시오. {
test: /containers\/.+reducer.js/,
input: 'reducer.test.js',
output: 'reducer.test.js',
plugin: ['s2s-reducer-test-case'],
},
이 플러그인은 switch/case 액션을 가져오고
test('handle ACTION_NAME')
가 이미 있으면 생성을 건너뛰고 그렇지 않으면 다음 형식의 테스트 케이스를 생성합니다. INITIAL_STATE는 reducer에 initialState를 작성하면 INITIAL_STATE로 취급합니다. (v0.3부터)test('handle ACTION_NAME', () => {
expect(actions.ACTION_CREATER()).toEqual(INITIAL_STATE);
});
이것에 의해, 인간이 쓰는 것은, toEqual에 주는 오브젝트와 인수만이 됩니다.
이것을 사용한 샘플은 이하에 있으므로, s2s.config.js 의 작성 방법 포함해 참고로 해 주세요. 하지만 옵션은 거의 없습니다.
또한 모든 s2s 플러그인은 lerna와 yarn workspace에 의한 모노 레포에서 운용하고 있습니다. 이슈와 풀릭 기다리고 있습니다.
요약
flow 환경에서 reducer 테스트, s2s에 의한 reducer 테스트 케이스의 자동 설명에 대해 썼습니다.
위에서 언급했듯이 테스트를 작성할 필요가 없습니다. 거기 시험이 있습니다.
어쨌든, 코멘트 란, 또는 트위터로 논의합시다.
s2s를 사용한 reducer 테스트 케이스 생성. 코드를 쓸 때, 거기 시험은 있다 htps // t. 코 / 후 SlpWr Poe 피 c. 라고 r. 코 m / 8C · W · 호 · QwL — 무직 .js (@akameco) October 2, 2017
redux의 reducer 테스트 완전히 사고 중지하면서 할 수 있게 되었다 htps // t. 코 / 9f7P6LmW2 피 c. 라고 r. 이 m/t무 WぉjY5C — 무직.js (@akameco) October 3, 2017
변경 내역
v0.2
initialState를 사용하지 않고 null을 삽입합니다. v0.3에서도 initialState가 없으면 null을 삽입합니다.
Reference
이 문제에 관하여(s2s: redux에서 reducer 테스트. 테스트를 작성할 필요가 없을 수도 있습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/akameco/items/66a2232df0e95e5bfe31텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)