Javascript Alexandre Gomes testando
Testes Automatizados
TDDtest driven development
planejar executaravaliar
intenção códigomelhorias
vermelho verderefactoring
intenção código melhorias
intenção código melhorias
intenção código melhorias
intenção código melhorias
https://weblogs.java.net/blog/johnsmart/archive/2014/01/04/bdd-unit-tests-and-power-fluent-assertions
http://jsunit.berlios.de/
Suite de Testes Cadastro de Usuários { } testeInclusaoDeUsuarioTudoCerto { ... } testeInclusaoDeUsuarioFaltandoDados { ... }
descreva Cadastro de Usuários { } ela Deveria funcionar em um cenário normal { ... } ela Deveria dar erro se estiver faltando dados { ... } descreva Inclusão de Usuários { } descreva Exclusão de Usuários { ... }
• Cadastro de Usuários • Inclusão – Deveria funcionar em um cenário normal – Deveria dar erro caso estejam faltando dados – … • Exclusão – Expectativa 1 – Expectativa 2 – … √ X
BDDbehaviour driven development
http://jasmine.github.io/
describe it it it it o que eu estou testando tem que se comportar assim tem que se comportar assado tem que fazer isso tem que fazer aquilo
describe it it it it o que eu estou testando tem que se comportar assim tem que se comportar assado tem que fazer isso tem que fazer aquilo describe um caso especial it tem que tomar cuidado
describe it it it it o que eu estou testando tem que se comportar assim tem que se comportar assado tem que fazer isso tem que fazer aquilo describe um caso especial it expect tem que tomar cuidado que alguma operação toEqual ao resultado esperado
describe it it it it o que eu estou testando tem que se comportar assim tem que se comportar assado tem que fazer isso tem que fazer aquilo describe um caso especial it expect tem que tomar cuidado que alguma operação toEqual ao resultado esperado
https://github.com/pivotal/jasmine/wiki/Matchers
DSLdomain driven language
Dado que Alguma circunstância Quando alguma coisa acontecer Então é esperado que algo aconteça
Given Alguma circunstância When alguma coisa acontecer Then é esperado que algo aconteça http://martinfowler.com/bliki/GivenWhenThen.html https://github.com/cucumber/cucumber/wiki/Given-When-Then
Given I am not logged in When I log in as Liz with a password JBehaver Then I should see a message, “Welcome, Liz!”
Given "the number 5" When "all prime numbers less than it are requested" Then "it should return [1,2,3,5] as a result" http://jbehave.org/
Narrative: As a Usuario I want Preencher um pedido So that Finalizar uma venda Scenario: Verificar o saldo de produtos Given O estoque tem 10 produtos When Eu verifico que há a disponibilidade para vender 5 produtos Then Deve retornar “true” Scenario: Pedido preenchido com sucesso Given O estoque tem 10 produtos When Eu preencho um pedido com 3 produtos Then Deve ser retornado que o status de preenchimento do pedido é “true”
$ npm install cucumber (node:37359) fs: re-evaluating native module sources is not supported. If you are using the graceful-fs module, please update it to a more recent version. node-labs@1.0.0 /Users/alegomes/GDrive/2016/unb/cic/mpca/Construção de Software/slides/NodeJS/_ └─┬ cucumber@1.0.0 ├── base-64@0.1.0 ├── callsite@1.0.0 ├─┬ camel-case@1.2.2 │ ├─┬ sentence-case@1.1.3 │ │ └── lower-case@1.1.3 │ └── upper-case@1.1.3 ├─┬ cli-table@0.3.1 │ └── colors@1.0.3 ├── co@4.6.0 ├── colors@1.1.2 ├─┬ commander@2.9.0 │ └── graceful-readlink@1.0.1 ├── cucumber-html@0.2.3 ├─┬ duration@0.2.0 │ ├── d@0.1.1 │ └─┬ es5-ext@0.10.11 │ ├── es6-iterator@2.0.0 │ └── es6-symbol@3.0.2 ├── gherkin@4.0.0 ├─┬ glob@7.0.5 │ ├── fs.realpath@1.0.0 │ ├─┬ inflight@1.0.5 │ │ └── wrappy@1.0.2 │ ├─┬ minimatch@3.0.2 │ │ └─┬ brace-expansion@1.1.5 │ │ ├── balanced-match@0.4.1 │ │ └── concat-map@0.0.1 │ ├── once@1.3.3 │ └── path-is-absolute@1.0.0 ├── is-generator@1.0.3 ├── lodash@4.13.1 └── stack-chain@1.3.7
$ cucumber.js
$ cucumber.js
P&Raprender.unb.br

TDDing com Javascript