tdding com javascript
TRANSCRIPT
Javascript
Alexandre Gomes
testando
TestesAutomatizados
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
itititit
o que eu estou testando
tem que se comportar assim
tem que se comportar assado
tem que fazer isso
tem que fazer aquilo
describe
itititit
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
itititit
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
itexpect
tem que tomar cuidado
que alguma operação
toEqual ao resultado esperado
describe
itititit
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
itexpect
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ânciaQuando alguma coisa acontecerEntão é esperado que algo aconteça
Given Alguma circunstânciaWhen alguma coisa acontecerThen é 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 inWhen I log in as Liz with a password JBehaverThen 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 UsuarioI want Preencher um pedidoSo that Finalizar uma venda
Scenario: Verificar o saldo de produtosGiven O estoque tem 10 produtosWhen Eu verifico que há a disponibilidade para vender 5 produtosThen Deve retornar “true”
Scenario: Pedido preenchido com sucessoGiven O estoque tem 10 produtosWhen Eu preencho um pedido com 3 produtosThen 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. [email protected] /Users/alegomes/GDrive/2016/unb/cic/mpca/Construção de Software/slides/NodeJS/_ └─┬ [email protected] ├── [email protected] ├── [email protected] ├─┬ [email protected] │ ├─┬ [email protected] │ │ └── [email protected] │ └── [email protected] ├─┬ [email protected] │ └── [email protected] ├── [email protected] ├── [email protected] ├─┬ [email protected] │ └── [email protected] ├── [email protected] ├─┬ [email protected] │ ├── [email protected] │ └─┬ [email protected] │ ├── [email protected] │ └── [email protected] ├── [email protected] ├─┬ [email protected] │ ├── [email protected] │ ├─┬ [email protected] │ │ └── [email protected] │ ├─┬ [email protected] │ │ └─┬ [email protected] │ │ ├── [email protected] │ │ └── [email protected] │ ├── [email protected] │ └── [email protected] ├── [email protected] ├── [email protected] └── [email protected]
$ cucumber.js
$ cucumber.js
P&Raprender.unb.br