2016-07-19 4 views
0

NightWatch for (Behavior driven)를 구현하여 두 개의 웹 사이트를 테스트했습니다. 모두 백엔드 기반 (Java, JSP)입니다.백엔드 구동 웹 사이트의 단위 테스트 용 자바 스크립트

이제 직원 중 일부가 잘못된 선택이라고 말하면 단위 테스트 프레임 워크 여야합니다.

프런트 엔드에는 '단위'가 없지만 페이지의 HTML에 반응하고 일부 플러그인/Vanilla JS 클래스를 바인딩합니다.

잘못되었습니다. 단순히 값을 반환하는 기능이 거의 없기 때문에 단위 테스트는 프런트 엔드에서 간단하지 않을 수 있습니다. 그것들은 모두 HTML 요소에 대한 페이지로드에 바인딩됩니다. 예를 들어

:

<div data-components="myComponent"><div>inner</div></div> 

로드/추가/변경 페이지에서 일부 HTML을 제거하는 몇 가지 자바 스크립트 (를 myComponent). 아무것도 반환하지 않습니다. 페이지를 업데이트합니다.

모든 조언을 환영합니다.

답변

2

단위 테스트는 코드를 테스트하는 여러 가지 방법 중 하나입니다. 아직 테스트가없는 기존 코드를 가지고 있다면 단위 테스트를 통해 테스트 할 수 없을 것입니다. 응용 프로그램을 설계 할 때 단위 테스트를 고려해야합니다. 단위 테스트는 좋은 디자인과 테스트 가능성이 함께하는 경향이 있기 때문에 인기가 있습니다. 그래서 단위 테스트는 코드 품질 문제로 볼 수 있습니다.하지만 실제로는 잘못된 유닛 테스트를 작성할 수도 있습니다.

사용자 인터페이스와 같은 것을 테스트하는 것은 단위 테스트 영역을 벗어나는 경향이 있습니다. 일반적으로 유용한 테스트를 작성할 수있는 방식으로 UI 코드를 디자인 할 수는 없습니다. 여기 접근법은 테스트 할 수없는 부분에서 가능한 많은 로직을 제거하는 것입니다.

우리 회사에는 서버 측 코드와 클라이언트 측 코드 (JS) 및 셀레늄 테스트를위한 대형 단위 테스트 스위트가 있습니다. 그것은 당신의 작업이 셀레늄 테스트로 테스트 할 수있는 것만을 포함 할 수 있다는 것입니다.

당신이 만들고있는 것의 종류에 따라 다릅니다. 일부 사용자 인터페이스는 매우 복잡하고 정교하며 사용자는이를 테스트하고 싶어합니다. 동시에, 단위 테스트를위한 oppurtunities를 찾습니다.

+0

정확하게 생각하고 있습니다. SPA (ak Angular etc.)가 아닙니다. 1 뷰를 호출하고 1 모델을 사용합니다. 그리고 준비된 HTML을 반환합니다. 심지어 JS 함수도 'call 플러그인 '또는'일부 HTML 추가 '.. 당신이 할 수있는 일은 함수를 호출하고 DOM이 변경 사항을 반영하는지 확인하는 것입니다 – DutchKevv