Upgrade to Pro — share decks privately, control downloads, hide ads and more …

TDD com Javascript

TDD com Javascript

Palestra sobre TDD com Javascript na trilha Web University do TDC2013 Floripa

Breno Ferreira

May 27, 2013

Transcript

44 slides
  1. Testar é necessário Não escrever testes é como um cirurgião

    que não lava as mãos antes de uma operação | Robert “Uncle Bob” Martin
  2. Mas afina, o que são testes? • Código que executa

    outro código • Verifica a exatidão de pressupostos • Caso esses pressupostos estejam corretos, o teste passa, senão, falha
  3. Vantagens • Prover feedback • Tendem a melhorar o design

    da aplicação • Contribui para manutenção • Documentação executável do seu código
  4. #Fatos • Se está dificil de testar, voce possivelmente está

    fazendo algo errado • Testes ruins são piores que nenhum teste • Saber o que testar, no começo, é dificil
  5. describe(‘Todos’, function(){ it(‘TodosView deve iniciar com lista vazia’, function(){ var

    view = new TodosView(); expect(view.todos.length).toBe(0); }); });
  6. it('cria todo com nome passado por param', function(){ var view

    = new TodosView(); var nomeTodo = 'nova todo'; view.criarTodo(nomeTodo); expect(view.todos[0].nome).toBe(nomeTodo); });
  7. Jasmine-jQuery it('renderiza lista de todos', function(){ var listaTodos = ['tarefa1',

    'tarefa2', 'tarefa3']; var view = new TodosView(tarefas); expect($('li:first')).toHaveText('tarefa1') });
  8. it('salva todos', function(){ var collection = new TodosCollection( ['tarefa1', 'tarefa2',

    'tarefa3']; ); spyOn(collection, 'save'); var view = new TodosView(collection); view.salvar(); expect($('#resultado')).toHaveText('Todos salvas'); });
  9. it('salva todos chama metodo save', function(){ var collection = new

    TodosCollection( ['tarefa1', 'tarefa2', 'tarefa3']; ); spyOn(collection, 'save'); var view = new TodosView(collection); view.salvar(); expect(collection.save).toHaveBeenCalled(); });
  10. it('carrega todos do servidor', function(){ var collection = new TodosCollection();

    var view = new TodosView(collection); view.listar(); server.requests[0].respond( 200, { "Content-Type": "application/json" }, JSON.stringify(['tarefa1', 'tarefa2']); ); expect(view.todos[0].nome).toBe('tarefa1'); });

More Decks by Breno Ferreira

Other Decks in Technology