Automatizando testes com Mocha em Node.js

Esta dica permitirá que você execute o teste npm na raiz do seu projeto e automatize seu conjunto de testes.

Primeiro, você precisa entender alguns conceitos básicos de como o Mocha funciona. Em seu projeto, você terá que ter uma pasta chamada ‘./tests’ e armazenar todos os seus arquivos de especificações para que isso funcione.

Na raiz do seu projeto, crie um Makefile com o seguinte conteúdo:

REPORTER = dot
TESTS
= test/*.coffee

test:

@NODE_ENV=test ./node_modules/.bin/mocha

--reporter $(REPORTER)

$(TESTS)


.PHONY: test

Observe que estou usando coffeescript para meus testes, caso você esteja escrevendo seus testes em JS simples, basta substituir a extensão .coffee na linha 2 por .js
Mais sobre testes de coffeescript : Mocha permite que você especifique argumentos ao executar testes , nesse caso, crie um arquivo mocha.opts dentro da pasta ‘./test’ com o seguinte:

--compilers coffee:coffee-script

Não se esqueça de adicionar Mocha como “devDependencies” no seu arquivo “package.json”. Se você quiser usar uma biblioteca de asserções de terceiros, terá que adicioná-la lá também.
Seu arquivo de teste deve ser mais ou menos assim:

http = require("http")
assert = require("assert")
app
= require("../app")

describe
"API v1", ->
describe
"GET /todos", ->
it
"should return at 200 response code", (done) ->
http
.get
path
: "/todos"
port
: 3000
, (res) ->
assert.equal res.statusCode, 200, "Expected: 404 Actual: #{res.statusCode}"
done()

Adicione isto ao seu package.json:

"scripts": { "test": "make test" },

Execute o teste npm e você deve obter os resultados do teste.