몇 년간의 코딩과 프로젝트 작업을 마친 후에 본인의 질문에 대한 답변을 제공 할 것입니다.
예, 단위 테스트를 작성해야합니다. 엔드 투 엔드 테스트는 UI 구성 요소에 의존하는 경우 특히 작성하기가 어렵고 부서지기 쉽습니다.
Django 또는 Rails와 같은 프레임 워크 (또는 자신의 사용자 정의 클래스)를 사용하는 경우 폼의 유효성 검사를 처리하는 폼 클래스가 있어야합니다. 또한 렌더링 된 템플릿과 양식을 표시하고 GET 및 POST 요청을 처리하는보기 클래스가 있습니다.
엔드 투 엔드 테스트에서는 다음을 수행합니다.
- URL을 얻을
- 유효한 데이터로 양식을 작성하십시오
- 양식을 URL에 게시
- 데이터베이스가 업데이트되었거나 유효한 양식의 결과로 일부 조치가 실행되었는지 확인하십시오.
많은 코드를 테스트하고 있으며 적용 범위는 꽤 좋지만 모든 것이 올바르게 될 때만 행복한 길을 테스트하고 있습니다. 양식에 올바른 유효성 검사가 있는지 어떻게 확인합니까? 해당 양식이 여러 페이지에 사용되면 어떻게됩니까? 또 다른 엔드 투 엔드 테스트를 작성하십니까?
단위 테스트로 다시 시도해 보겠습니다.
- 뷰 GET 방법 테스트
- 가짜 / 모의 양식으로 view POST 메소드를 테스트하십시오.
- 유효한 데이터로 양식을 테스트하십시오.
- 유효하지 않은 데이터로 양식을 테스트하십시오.
- 양식의 부작용 테스트
단위 테스트를 사용하면 작은 코드 조각을 테스트 할 수 있으며 테스트는 구체적이고 작성하기 쉽습니다. 이것을 TDD (Test Driven Development)와 결합하면 더 높은 품질의 코드를 얻게됩니다.
자동화 된 테스트 가 없는 프로젝트를 수행 할 때는 어딘가에서 시작해야하기 때문에 단위 테스트 작성이 쉬워서는 안됩니다 . 단위 테스트로 시작하는 것이 더 쉽고 빠르며, 행복한 길을 찾는 것보다 버그를 즉시 테스트 할 수 있습니다.
was told by a co-worker that the reason for this is that we can rip out and change the underlying implementation at any point as long as the end-to-end tests pass.
-단위 테스트에서도 마찬가지입니다. 엔드 투 엔드 테스트가 단위 테스트를 작성하지 않는 것에 대한 변명으로 사용되는 것처럼 들립니다.