Sobes.tech
Junior

Qual framework de testes você usou?

sobes.tech IA

Resposta da IA

Utilizei vários frameworks de teste, dependendo da pilha tecnológica do projeto e da natureza dos testes. Os mais utilizados foram:

  • JUnit / TestNG para testar aplicações Java.
  • Pytest / unittest para testar aplicações Python.
  • NUnit / xUnit para testar aplicações .NET.
  • Mocha / Jest para testar aplicações JavaScript (nomeadamente frontend).
  • Cypress / Selenium WebDriver para automação de UI.
  • Rest-Assured para automação de testes REST API em Java.
  • Requests + pytest para automação de testes REST API em Python.

A escolha do framework baseava-se sempre em fatores como:

  • A pilha tecnológica da aplicação.
  • Os requisitos de cobertura de testes (Unit, Integration, End-to-End).
  • Suporte para integração com sistemas CI/CD.
  • A atualidade e atividade da comunidade do framework.
  • A experiência da equipa.

Nos projetos onde era necessária uma automação extensa de UI, utilizei ativamente Selenium WebDriver com várias linguagens (Java, Python), bem como Cypress para testes web mais rápidos e fiáveis. Para testes de API, geralmente utilizavam-se bibliotecas especializadas integradas com frameworks de teste gerais (por exemplo, Rest-Assured com JUnit).

Aqui está um exemplo de uso do Pytest para um teste unitário simples:

# test_example.py

def add(a, b):
    return a + b

def test_add_positive_numbers():
    # Teste de soma de números positivos
    assert add(2, 3) == 5

def test_add_negative_numbers():
    # Teste de soma de números negativos
    assert add(-1, -1) == -2

E aqui um exemplo de uso do JUnit para um teste semelhante:

// AdditionTest.java
import static org.junit.jupiter.api.Assertions.assertEquals;

import org.junit.jupiter.api.Test;

public class AdditionTest {

    public int add(int a, int b) {
        return a + b;
    }

    @Test
    void testAddPositiveNumbers() {
        // Teste de soma de números positivos
        assertEquals(5, add(2, 3));
    }

    @Test
    void testAddNegativeNumbers() {
        // Teste de soma de números negativos
        assertEquals(-2, add(-1, -1));
    }
}

Cada framework tem suas próprias características e vantagens, e a escolha é sempre motivada pela necessidade de resolver da melhor forma a tarefa de teste.