Introdução
Neste laboratório, você aprenderá como testar aplicações Flask utilizando o framework pytest. Testar é uma parte importante do processo de desenvolvimento de software, pois ajuda a garantir a correção e a confiabilidade da sua aplicação. O Flask fornece utilitários para testes, facilitando a escrita de testes para diferentes partes da sua aplicação.
Nota: Você precisa criar o arquivo de código você mesmo e executá-lo no ambiente. Você pode visualizar o status do serviço Flask na Web 5000.
Configurando o Ambiente de Teste
Antes de começar a escrever testes para sua aplicação Flask, você precisa configurar o ambiente de teste. Aqui estão os passos para fazer isso:
Instale o framework
pytestexecutando o seguinte comando:pip install pytestCrie um novo arquivo chamado
conftest.pyna pastatestsda sua aplicação Flask.No arquivo
conftest.py, importe os módulos necessários:import pytest from my_app import create_appDefina uma fixture chamada
appque cria e configura uma instância da aplicação:@pytest.fixture() def app(): app = create_app() app.config.update({ "TESTING": True, }) yield appObserve que, se você estiver usando um padrão de fábrica de aplicações (application factory pattern), você deve modificar a fixture de acordo.
Defina fixtures para o cliente de teste e o executor de CLI (CLI runner):
@pytest.fixture() def client(app): return app.test_client() @pytest.fixture() def runner(app): return app.test_cli_runner()
Escrevendo Testes
Agora que você configurou o ambiente de teste, pode começar a escrever testes para sua aplicação Flask. Aqui estão alguns exemplos de testes comuns que você pode querer escrever:
Testar uma rota:
def test_hello(client): response = client.get("/") assert response.status_code == 200 assert b"Hello, World!" in response.dataEste teste envia uma requisição GET para a rota raiz ("/") e verifica se o código de status da resposta é 200 e se os dados da resposta contêm a string "Hello, World!".
Testar uma requisição POST:
def test_login(client): response = client.post("/login", data={"username": "test", "password": "pass"}) assert response.status_code == 200 assert b"Logged in successfully" in response.dataEste teste envia uma requisição POST para a rota de login ("/login") com dados de formulário contendo um nome de usuário e senha. Ele verifica se o código de status da resposta é 200 e se os dados da resposta contêm a string "Logged in successfully".
Testar um comando:
def test_hello_command(runner): result = runner.invoke(args=["hello"]) assert result.exit_code == 0 assert "Hello, World!" in result.outputEste teste invoca um comando chamado "hello" e verifica se o comando sai com um código 0 e se a saída contém a string "Hello, World!".
Executando os Testes
Para executar os testes, navegue até a pasta raiz da sua aplicação Flask no terminal e execute o seguinte comando:
pytest
Este comando irá descobrir e executar todos os testes na pasta tests. Você deverá ver os resultados dos testes na saída do terminal.
Resumo
Neste laboratório, você aprendeu como testar aplicações Flask usando o framework pytest. Você configurou o ambiente de teste, escreveu testes para diferentes partes da sua aplicação e executou os testes para verificar a correção do seu código. Testar é uma parte essencial do processo de desenvolvimento de software, e escrever testes para sua aplicação Flask ajudará a garantir sua confiabilidade e estabilidade.