Siêu thị PDFTải ngay đi em, trời tối mất

Thư viện tri thức trực tuyến

Kho tài liệu với 50,000+ tài liệu học thuật

© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

JavaScript for Testers
MIỄN PHÍ
Số trang
46
Kích thước
426.4 KB
Định dạng
PDF
Lượt xem
1986

JavaScript for Testers

Nội dung xem thử

Mô tả chi tiết

JavaScript for Testers

Carlos Ble

JavaScript for Testers

Carlos Ble

This book is for sale at http://leanpub.com/javascript4testers

This version was published on 2014-10-13

This is a Leanpub book. Leanpub empowers authors and publishers with the Lean Publishing

process. Lean Publishing is the act of publishing an in-progress ebook using lightweight tools and

many iterations to get reader feedback, pivot until you have the right book and build traction once

you do.

This work is licensed under a Creative Commons Attribution 3.0 Unported License

Contents

Workshop overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

Configuring the project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

Setting up the tools for the workshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

The JavaScript Language . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

Introduction to Jasmine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

Data types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

JavaScript: The tricky parts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

Common sources of defects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

JSON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

Browser development tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

The DOM (Document Object Model) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

jQuery basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

Selectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

Ajax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

Debugging Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

Watching Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

The Call Stack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

Debugging with Firebug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

Debugging with Chrome Dev Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

Debugging on IE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

Debugging JavaScript in the server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

Online tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

Integration Testing utilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

Selenium . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

CasperJS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

Integration tests with Jasmine, jQuery and the DOM . . . . . . . . . . . . . . . . . . . . . 32

CONTENTS

Fast and isolated tests with doubles: Stubs, Mocks and Spies . . . . . . . . . . . . . . . . . 33

Stubs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

Mocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

Spies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

Code quality tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

JSHint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

Code coverage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

Hunting memory leaks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

Performance tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

Measuring performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

Benchmarking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

Security basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

Cookies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

XSS: Cross-site scripting. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

The same-origin policy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

JSONP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

CSRF: Cross-site request forgery. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

Sending malicious JSON data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

Sniffing network messages. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

Tải ngay đi em, còn do dự, trời tối mất!