1
resposta

Invés de mockar o retorno da função de salvamento no banco de dados eu poderia chamar a função de salvamento e em seguido o delete?

olá, fiquei com uma duvida em determinado momento do video mockamos o retorno da função de salvar no banco de dados, entendi que faz sentido deixarmos mockado para casos em que não estamos testando necessariamente o salvamento no banco e sim o comportamento da API.

Porem caso seja necessário testar o comportamento no banco de dados, a melhor forma seria durante o teste chamar a função de salvamento e na sequencia chamar a função de delete passando como parametro o ID que foi criado pela primeira função?

1 resposta

Olá, Tekkitgeek!

Sua pergunta é muito pertinente e mostra que você está bem atento às nuances dos testes.

Em geral, o ideal é que os testes unitários sejam independentes de qualquer dependência externa, como um banco de dados. Por isso, costumamos "mockar" essas dependências. Assim, conseguimos testar a lógica do nosso código de forma isolada, sem interferências externas e sem alterar o estado do banco de dados.

No entanto, em alguns casos, pode ser necessário testar o comportamento do banco de dados. Nesse caso, o que você sugeriu pode ser uma opção: chamar a função de salvamento e em seguida a função de delete. Mas é importante lembrar que isso pode tornar os testes mais lentos e sujeitos a falhas caso haja algum problema com o banco de dados.

Outra opção seria utilizar um banco de dados em memória, como o SQLite, por exemplo, apenas para os testes. Assim, você poderia testar o comportamento do banco de dados sem afetar o banco de dados de produção.

Por exemplo, durante o setup dos seus testes, você poderia criar um banco de dados em memória, e depois de cada teste, você poderia deletar todas as informações desse banco. Dessa forma, cada teste seria executado com o banco de dados em um estado conhecido e controlado, e os testes não interfeririam uns nos outros.

Espero ter ajudado e bons estudos!