Jasmine 및 Karma를 사용하여 단일 HTML 페이지를 기반으로 한 순수 프론트 엔드 프로젝트를 TDD로 테스트하려고합니다.Jasmine 및 Karma를 사용하여 DOM 및 CSS를 테스트하는 방법
재스민 문서는 내가 테스트하려고하는 가장 중요한 것 중 하나 인 DOM 조작에 대해 아무것도 말하지 않습니다.
질문은 간단합니다. DOM 변경 사항과 HTML 페이지의 내용 변경을 검사하려면 어떻게해야합니까?
HTML 파일
<a href="#/say_hello">Say Hello</a>
JS 파일 :
// Router
App.Router = Backbone.Router.extend({
routes: {
'': 'home',
'say_hello': 'sayHello'
}
});
var router = new App.Router();
router.on('route:sayHello', function(){
$("body").append("Hello World");
});
Backbone.history.start();
이 어떻게 그런 행동을 테스트합니까 : 누군가가 클릭하면 는 "안부"나는 다음과 같은 코드가있는 경우 예를 들어 는 말 링크에서 HTML 본문의 텍스트에 "Hello World"가 포함됩니다.
그리고 CSS 변경 사항을 확인하거나 HTML 이벤트 (마우스 오버, 포커스, C)를 어떻게 시뮬레이트합니까? hange, load, etc ...)? 재스민과 카르마와 그게 가능합니까? 부 - - 모의 객체, 명세서 및 스파이 작은 방법
감사
DOM 조작의 단위 테스트가 훨씬 넓다는 사실이이 사실을 이해합니까? 따라서 이것은 Silienium과 같은 Behavior Driven Testing에 더 잘 맞아야합니까? –
@NEXTLEVELSHIT 오이 (셀레늄 포함)는 ** 수락 ** 수준의 테스트에 좋습니다. 1 년 후에 ** TDD **와 ** BDD ** 사이의 차이를 찾기가 어렵습니다. TDD는 작은 메서드를 테스트하고 어떤 메서드가 다른 메서드에서 호출되었고 어떤 인수로 호출되는지 검사합니다. BDD는 전체 기능이 작동 함을 입증하고 전체 동작을 구현했습니다. ACCEPTANCE는 Google 시스템이 사용자를위한 준비가되어 있고 메소드가 UI와 연결되어 있고 UI가 모델의 변경 사항에 올바르게 반응하며 모델 변경이 UI에 반영되어 있음을 증명합니다 –