Falando em CodeceptJS – Falando em Testes
Publicado em 5 de dezembro de 2019 8 de junho de 2020 por Eleandra Bruna
O CodeceptJS é um framework de testes, com sintaxe em BDD, que conta com a ajuda de diferentes auxiliares. Veja abaixo:
Fonte: https://codecept.io/basics
Para entender um pouco melhor seu funcionamento, faremos um teste simples em JavaScript, utilizando o WebDriverIO.
Configurando o CodeceptJS
Bora fazer as configurações:
❯◉ WebDriver
◯ Appium
◯ FileSystem
Mais detalhes da configuração, consulte o link: https://codecept.io/quickstart-webdriver.
Uma vez que a configuração do codeceptJS tenha sido realizada, nomeie o arquivo gerado com "api_test.js", abra-o em um editor de sua preferência.
Vamos criar uma função assíncrona que fará uma requisição com o método GET em uma página http ( http://www.mocky.io/v2/5de979ea31000029ac6b195f ):
async function getTestApi() {
return await axios.get(`http://www.mocky.io/v2/5de979ea31000029ac6b195f`, {
Vamos entender o que fizemos até aqui?
Como dissemos, criamos uma função assíncrona chamada "getTestApi", essa função, realiza uma requisição na página (http://www.mocky.io/v2/5de979ea31000029ac6b195f) e aguarda um retorno (return await).
O axios gerencia a requisição, e usa a função GET para identificar o método, podemos usar outros gerenciadores, neste caso optamos pelo axios, pois ele interage com XMLHttpRequest e com a o http do node, de forma que o mesmo código utilizado para fazer requisições ajax no browser também funciona no servidor, outra vantagem é que as requisições feitas através da biblioteca retornam uma promise, compatível com a nova versão do JavaScript – ES6. (Fonte: http://codeheaven.io/how-to-use-axios-as-your-http-client-pt/).
Configurando o "axios"
Voltando ao nosso arquivo de teste…
Precisamos declarar uma constante para chamar o axios. Fica assim:
const gerenciador = require('axios')
Interpretando BDD
Tudo certo, agora vamos ao nosso cenário, o mesmo precisará de uma biblioteca para interpretar nosso BDD. Vamos utilizar o chai, que é compatível com nossa estrutura em javaScript (https://www.chaijs.com/guide/styles/).
Agora precisamos chamar o chai no nosso teste, igual fizemos com o axios:
Boa, nosso framework já consegue interpretar um BDD. Então vamos pro que interessa?
Feature("Exemplo básico");
Scenario('Retorno mocky.io', async () => {
mockio = await getTestApi()
console.log(mockio.data)
Entendendo o que fizemos acima:
Criamos uma funcionalidade chamada "Exemplo básico".
Dentro da funcionalidade, criamos um cenário de testes, no caso, o "Retorno mocky.io".
Declaramos uma variável "mockio" que armazena o retorno da nossa função "getTestApi".
Exibimos o retorno no nosso console.log, fica assim:
Roda aí pra ver se deu tudo certo!
Mas, antes da uma olhada na estrutura do seu teste, tem que ficar parecido com o meu:
Executa esse comando no terminal, dentro da pasta do projeto:
npx codeceptjs run tests/api_test.js.js
Sucesso não é?
Vamos finalizar com uma validação?
Cria ai um segundo cenário:
Scenario('Vadidar mocky.io', async () => {
expect(mockio.data.type).to.equal('Teste de API')
Sacou o que estamos fazendo?
O "expect" neste caso, é uma expressão do chai, que espera que o retorno do "type" seja igual a "Teste de API".
Para que o "expect" seja identificado, precisamos declarar ele no nosso projeto, desta forma:
Nosso teste fica assim:
Roda ai, o retorno tem que ser algo assim:
Gostou? Tem algo legal pra compartilhar? Manda pra gente: https://www.falandoemtestes.com.br/compartilhe/artigo/