>웹 프론트엔드 >JS 튜토리얼 >자바스크립트 테스트

자바스크립트 테스트

高洛峰
高洛峰원래의
2016-11-25 13:28:311297검색

자바스크립트를 리팩토링할 때, 리팩토링이 원활하게 진행될 수 있도록 사용하기 쉬운 테스트 프레임워크를 도입하고 싶습니다. 앞으로도 테스트 코드를 통해 자바스크립트 로직의 정확성을 지속적으로 보장할 수 있을 것입니다.
JsUnit(http://sourceforge.net/projects/jsunit/, http://www.jsunit.net/)
JsUnit은 JUnit과 유사하며 어려움이 없는 독립적인 JavaScript 유닛 테스트 프레임워크입니다. 시작 시 전통적인 setUp 및 TearDown을 포함하여 제공되는 Assert 메서드는 JUnit과 유사하며 AssertNaN 및 AssertUndefine과 같은 추가 JavaScript 관련 메서드도 포함됩니다. 테스트 페이지는 에 js 파일 jsUnitCore.js를 도입해야 합니다.
테스트 스위트 지원: addTestPage 및 addTestSuite가 제공됩니다.
테스트 로그 지원: 경고, 정보 및 디버그의 세 가지 로그 수준을 포함합니다. 프런트엔드 코딩은 백엔드 코드와도 다릅니다. 게다가 로그는 FF에서만 지원됩니다.

천 단어로는 충분하지 않지만 한 가지 예를 들면 다음과 같습니다.
Js 코드
;script 언어 ="javascript" src="play.js"> //모듈 JS

function testWithMainProcess() {
ertEquals("웹 플레이 url", "## http:/ /...##", webOnlinePlay());
}

프로젝트 코드가 Ajax 호출로 가득 차 있습니다. 유닛 테스트를 하려면 파일링이 불가피할 것 같습니다. JQuery에 적합한 QMock과 같은 많은 Mock 도구가 있습니다.
Js 코드
var mockJquery = new Mock()
mockJquery
.expects(1)
.method('ajax' )
.withArguments({
url: 'http://xxx,
성공: 함수,
dataType: "jsonp"
})
.callFunctionWith({ 피드: { 항목: "data response" }});

이 파일은 가짜 Ajax Jason을 조롱하고 있습니다. 반환: [feed:[entry:"data response"]], 살펴보고 EasyMock 이전처럼 사용하세요. 거의 동일합니다.

JavaScript 테스트 프레임워크에 관심이 있는 학생은 JSpec과 같은 다른 테스트 프레임워크에 대해서도 배울 수 있습니다.

단위 테스트 코드는 모듈 패키지(test.html)에 배치하는 것이 좋습니다. 이상적인 조건에서도 모듈이 별도로 출시되면 신뢰할 수 있는 테스트 케이스의 프런트엔드 코드가 함께 제공됩니다. .
어떤 JavaScript 코드로 시작해야 하나요?
1. 기능 코드. 이러한 코드는 독립성이 뛰어나고 스테이킹이 필요하지 않으며 테스트 비용이 저렴합니다. 기능적 코드의 의미를 이해하지 못하는 경우 "함수형 프로그래밍"을 참조하세요.
2.복잡한 논리.
TDD를 사용해 보고 싶으신가요? 우리 팀 내에서 사용하는 것은 권장되지 않습니다. 프런트엔드 TDD에는 더 높은 기술과 인적 요소에 대한 더 높은 요구 사항이 필요합니다. 어느 날 백그라운드 Java 코드의 TDD가 완료되면 JavaScript 코드로 대체해도 본질적인 차이는 없습니다.

효과가 적절하다면 지속적인 통합의 일부로 JavaScript UT를 ICP-CI에 통합할 수 없는 이유는 무엇입니까?

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.