Slide 1

Slide 1 text

Testes em javascript

Slide 2

Slide 2 text

Duke dukex.github.io github.com/dukex twitter.com/_dukex

Slide 3

Slide 3 text

Testes em javascript

Slide 4

Slide 4 text

TDD e BDD?

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

TDD test('equals 1 for sets of zero length ', function() { assert.equal(1, factorial(0)); }); test('equals 1 for sets of length one ', function() { assert.equal(1, factorial(1)); }); test('equals 2 for sets of length two ', function() { assert.equal(2, factorial(2)); }); test('equals 6 for sets of length three ', function() { assert.equal(6, factorial(3)); });

Slide 7

Slide 7 text

Em contraste com TDD, BDD é quando escrevemos comportamento e especificação que então impulsiona o nosso desenvolvimento de software. Comportamento e especificações pode parecer muito semelhante aos testes, mas a diferença é muito sutil e importante. https://joshldavis.com/2013/05/27/difference-between-tdd-and-bdd/

Slide 8

Slide 8 text

BDD it('should return 1 when given 0 ', function() { factorial(0).should.equal(1); }); it('should return 1 when given 1 ', function() { factorial(1).should.equal(1); }); it('should return 2 when given 2 ', function() { factorial(2).should.equal(2); }); it('should return 6 when given 3 ', function() { factorial(3).should.equal(6); });

Slide 9

Slide 9 text

BDD feature('Calculator: add') .scenario('should be able to add 2 numbers together ') .when('I enter "1"') .and('I add "2"') .then('I should get "3"') .scenario('should be able to add 3 numbers together ') .when('I enter "1"') .and('I add "2"') .and('I add "3"') .then('I should get "6"')

Slide 10

Slide 10 text

Mão na massa... pull-request https://github.com/gdg- sp/html5studygroup/pull/20

Slide 11

Slide 11 text

1. Crei a pasta 'test' no projeto 2. Instalei o mocha (npm install --save mocha) 3. Instalei o chai (npm install --save chai) 4. Instalei o supertest (npm install supertest --save-dev) 5. Criei arquivo 'test/server_test.js' 6. Movi código necesario para app.js (código testavel) 7. Comentei codigo não testado 8. Testei

Slide 12

Slide 12 text

Links ➔ https://joshldavis.com/2013/05/27/difference-between-tdd-and- bdd/ ➔ https://github.com/jdavis/tdd-vs-bdd ➔ http://programmers.stackexchange.com/questions/135218/what-is- the-difference-between-writing-test-cases-for-bdd-and-tdd ➔ https://github.com/visionmedia/supertest ➔ http://code.tutsplus.com/tutorials/how-to-test-your-javascript- code-with-qunit--net-9077

Slide 13

Slide 13 text

Obrigado! dukex.github.io github.com/dukex twitter.com/_dukex bit.ly/meetup-8