Qualidade e Testes

Mocha

Framework para execução de testes unitários.
Estrutura de teste JavaScript rica em recursos em execução no Node.js (servidor) e no navegador (cliente), tornando o teste assíncrono simples.
Os testes Mocha são executados em série, permitindo relatórios flexíveis e precisos, enquanto mapeia exceções não detectadas para os casos de teste corretos.
Segue padrões e princípios do BDD de ser descritivo, escrever testes de modo expressivo, qual funcionalidade de negócio está representando. Qual comportamento é esperado.
Por padrão, o Mocha procura na raiz do projeto pelo diretório chamado "test".
Exemplo de arquivo de teste, seguindo o padrão BDD: test/math.spec.js


                        npm i --save-dev mocha

                        // Incluir no package.json
                        "scripts": {
                            "test": "mocha"
                        },
                    
O Mocha não provê uma ferramenta de assert. Então, importamos do Node.js

                        const assert = require('assert');
                    
Porém, o assert por si só é limitado, porque não é tão descritivo quanto poderia ser, há uma perda de legibilidade.
Para resolver isso usamos a Library Chai.

References

mochajs.org
chaijs.com
sinonjs.org