Skip to content

Latest commit

 

History

History
54 lines (39 loc) · 2.17 KB

3-parts-in-name.brazilian-portuguese.md

File metadata and controls

54 lines (39 loc) · 2.17 KB

Inclua 3 partes em cada nome de teste



Explicação em um Parágrafo

Um relatório de teste deve informar se a revisão atual do aplicativo satisfaz os requisitos para as pessoas que não estão necessariamente familiarizadas com o código: o testador, o engenheiro de DevOps que está implantando e o futuro daqui a dois anos. Isso pode ser melhor alcançado se os testes falarem no nível de requisitos e incluírem 3 partes:

(1) O que está sendo testado? Por exemplo, o método ProductsService.addNewProduct

(2) Em que circunstâncias e cenário? Por exemplo, nenhum preço é passado para o método

(3) Qual é o resultado esperado? Por exemplo, o novo produto não é aprovado



Exemplo de código: um nome de teste que inclui 3 partes

//1. unidade em teste
describe('Serviço de Produtos', function() {
  describe('Adicionar novo produto', function() {
    //2. cenário e 3. expectativa
    it('Quando nenhum preço é especificado, o status do produto está aguardando aprovação', ()=> {
      const newProduct = new ProductService().add(...);
      expect(newProduct.status).to.equal('pendingApproval');
    });
  });
});



Exemplo de código - Anti-padrão: é necessário ler todo o código de teste para entender a intenção

describe('Serviço de Produtos', function() {
  describe('Adicionar novo produto', function() {
    it('Deve devolver o status correto', ()=> {
        //hmm, o que é esta verificação de teste? Quais são o cenário e a expectativa?
      const newProduct = new ProductService().add(...);
      expect(newProduct.status).to.equal('pendingApproval');
    });
  });
});



"Fazendo direito exemplo: O relatório de teste se assemelha ao documento de requisitos"

Do blog "30 Node.js testing best practices" por Yoni Goldberg

Um exemplo de relatório de teste