Testes de Api's - Validação de dados enviados via POST

Pessoal,

Estou com uma dúvida… Estou num projeto onde estou testando somente api’s. E no momento, só tenho métodos POST implementados na api. Os dados são enviados para um banco de dados e estou valiando também, além do retorno da api se as informações postadas, foram realmente para o banco. Verifico o banco de dados manualmente, pois ainda não temos interface.

Alguém faz essa verificação no banco de forma automatizada, ou somente via interface (quando ela está pronta)?

Como estão fazendo?

Oi Bernadete,
Se for o caso de tu enviar o POST para o teu endpoint, e os dados não forem cadastrados no banco, o retorno via API será negativo? (alguma mensagem informativa, mudança de HTTP Status, etc…)

Se sim, eu não vejo a necessidade de tu ir no banco e validar se os dados foram cadastrados.
Eu já fiz isso somente se temos algum tipo de transformação de dados, e era de forma automatizada (mas foi necessário programar a forma de correlacionar o meu teste à onde vai “bater” no banco e também a validação retornando os dados do banco).

Abraço!


@eliasnogueira

Oi @Bernadete, qual é o banco de dados que vcs usam?

Quando fazia testes de API com Node.js (usando Supertest), eu também fazia verificações no banco, já cheguei a fazer isso em bancos com MongoDB e SQL Server. O que vai mudar é a biblioteca que você vai utilizar pra conseguir conectar com o banco de dados.

Pra SQL Server, por exemplo, existe a lib mssql : https://www.npmjs.com/package/mssql

Com ela, eu conseguia fazer algo do tipo nos testes: https://gist.github.com/stefanteixeira/9b9a9e1ffa5d818ddb755e6bc6669753 (coloquei num gist porque formatar código aqui é meio complicado :smile:)

PS: Esse exemplo tá usando supertest-as-promised (https://github.com/WhoopInc/supertest-as-promised).

Com o MongoDB, por exemplo, você poderia conectar com o banco usando o próprio MongoClient (da lib ` mongodb`` ).

Abs

@stefanteixeira Usamos o Dynamodb da amazon… é um projeto novo e começamos usar esse banco agora… Vou ver se tem alguma lib que suporte esse banco. Está tudo bem novo para a gente tb… Vou olhar seus exemplos! Vão me ajudar.

@Elias-Nogueira Sim. Se os dados não forem inseridos no banco, a resposta é negativa. Mas já peguei um bug onde não deveria inserir no banco, e inseriu. Mesmo retornando a resposta negativa.

Log in to reply

Looks like your connection to Agile Testers was lost, please wait while we try to reconnect.