Fluxos de testes de erros usando seu framework favorito
Explicação em um Parágrafo
Testar caminhos "felizes" não é melhor do que testar falhas. Uma boa cobertura de código de teste exige testar caminhos excepcionais. Caso contrário, não há confiança de que as exceções sejam realmente tratadas corretamente. Cada estrutura de testes unitários, como o Mocha e Chai, suporta testes de exceção (exemplos de código abaixo). Se você achar tedioso testar todas as funções internas e exceções, você pode resolver testando apenas erros HTTP da API REST.
Exemplo de código: garantindo que a exceção correta seja lançada usando Mocha & Chai
describe("Bate-papo do Facebook", () => {
it("Notifica em nova mensagem de bate-papo", () => {
var chatService = new chatService();
chatService.participants = getDisconnectedParticipants();
expect(chatService.sendMessage.bind({ message: "Oi" })).to.throw(ConnectionError);
});
});
Exemplo de código: garantindo que a API retorne o código de erro HTTP correto
it("Cria um novo grupo no Facebook", function (done) {
var invalidGroupInfo = {};
httpRequest({
method: 'POST',
uri: "facebook.com/api/groups",
resolveWithFullResponse: true,
body: invalidGroupInfo,
json: true
}).then((response) => {
// se fôssemos executar o código neste bloco, nenhum erro foi lançado na operação acima
}).catch(function (response) {
expect(400).to.equal(response.statusCode);
done();
});
});