Testes unitários com jasmine: Criando seu próprio Matcher
O jasmine possui algumas funções prontas que realizam testes simples, que são chamados de matchers. Sendo assim, o desenvolvedor pode escrever testes de maneira simples e legível. No entando é possível escrever seu próprio matcher, no qual ele verificará no resultado do teste o que o desenvolvedor definiu para ele. Para criar esse matcher, utilizaremos o ambiente de desenvolvimento configurado no artigo Testes Unitários com Jasmine e Karma.
Criando Seu Próprio Matcher
Para criar um matcher, pode-se adicionar o código antes de cada spec. No entando isso seria inviável devido a quantidade de código repetido, então usaremos o beforeEach(). Este último executará o seu conteúdo antes de cada spec. Adicione o código abaixo no começo do arquivo ou logo abaixo do describe [jas 2018].
var meusMatchers = {
toBe2018: function (util, customEqualityTesters) {
return {
compare: function (actual, expected) {
var result = {};
result.pass = util.equals(actual,
2018, customEqualityTesters);
if (!result.pass) {
result.message = "Expected " + actual + "
to be 2018 but it was not";
}
return result;
}
}
}
};
Dentro do objeto "meusMatchers" criamos um Matcher com o nome "toBe2018". Esse Matcher nos ajudará a verificar se um valor é igual a 2018. Quando se cria um Matcher, ele deve receber dois parâmetros, util e customEqualityTesters. O primeiro possui funcionalidades para os Matchers e o segundo precisa ser passado como parâmetro porque utilizamos o utils.equals. A função do Matcher deve retornar a função compare(), que recebe o valor atual e o esperado.
Se o valor passado para verificação não for 2018, então nosso Matcher deverá retornar uma mensagem de erro. Para que essa mensagem seja exibida pelo jasmine no console, devemos adicionar o atributo message com a mensagem definida na função compare().
Para registrar esse Matcher e podermos utilizá-lo em nossos testes, será necessário iniciá-lo antes de cada spec. Para isso, registraremos dentro da função beforeEach(), conforme o código abaixo:
beforeEach(function () {
jasmine.addMatchers(meusMatchers);
Após registrarmos o nosso matcher, já poderemos utilizá-lo em nossos testes. Abaixo temos um código de exemplo:
it('Deve ser igual a 2018', function () {
expect(2018).toBe2018();
Criando Seu Próprio Matcher
Vimos que é possível utilizar essa funcionalidade do jasmine para criarmos Matchers que atendam as regras específicas do nosso código. Sinta-se a vontade para explorar essa funcionalidade.
Referências
- [jas 2018] (acessado em Julho 2, 2018). Jasmine Behavior-Driven JavaScript. http://jasmine.github.io.
Inscreva-se no { .aztech }
Receba as últimas postagens enviadas diretamente para sua caixa de entrada