Testowanie JavaScript

7
Testowanie JavaScript Tomasz Bąk [email protected]

Transcript of Testowanie JavaScript

Page 1: Testowanie JavaScript

Testowanie JavaScript

Tomasz Bą[email protected]

Page 2: Testowanie JavaScript

Dlaczego JavaScript?

użytkownicy oczekują coraz większej

użyteczność interfejsów i szybkości

JavaScript to zapewnia

Page 3: Testowanie JavaScript

Dlaczego Jasmine?

dobrze integruje się z Rails

składnia zbliżona do RSpec

obsługa CoffeeScript / Asset Pipeline

matchery jQuery, fixturki widoków, Sinon.JS

(test spies, stubs & mocks)

tryb standalone

Page 4: Testowanie JavaScript

JavaScript || CoffeeScript describe("Calculator", function() { describe("#add", function() { return it("adds two numbers", function() { var calculator; calculator = new Calculator(); return expect(calculator.add(1, 1)).toEqual(2); }); }); describe("#subtract", function() { return it("subtracts two numbers", function() { var calculator; calculator = new Calculator(); return expect(calculator.subtract(10,

1)).toEqual(9); }); }); ... });

describe "Calculator", -> describe "#add", -> it "adds two numbers", -> calculator = new Calculator() expect(calculator.add(1, 1)).toEqual 2 describe "#subtract", -> it "subtracts two numbers", -> calculator = new Calculator() expect(calculator.subtract(10, 1)).toEqual 9

Page 5: Testowanie JavaScript

Matcheryexpect($('<div class="some-class"></div>')).toHaveClass("some-class")

expect($('<div class="some-class"></div>')).not.toHaveClass("some-class")

expect($('<div>some text</div>')).toHaveText('some text')

expect($form).toHandle("submit")

…beforeEach(function() { this.addMatchers({

toBeACalendar: function() { return this.actual.hasClass("hasDatepicker"); },

...

Page 6: Testowanie JavaScript

Demo

http://github.com/tb/testing-javascript

Page 7: Testowanie JavaScript

Dzięki

[email protected]