Testando contratos inteligentes
Como testar contratos inteligentes e por que fazê-lo?
A etapa básica do desenvolvimento de contratos inteligentes para suas soluções web3 é testá-lo antes mesmo de implantá-lo na testnet. A execução de testes que verificam o recurso implementado é crucial!
Agenda:
- introdução,
- O que é isso?
- o que faz?
- Ferramentas,
- conclusão.
“O teste de contrato inteligente significa realizar análise e avaliação detalhadas de um contrato inteligente para avaliar a qualidade de seu código-fonte durante o ciclo de desenvolvimento.”
Em palavras simples e práticas: testar é escrever variantes simples de usar os recursos e esperar que os resultados sejam iguais às declarações predefinidas.
Exemplo simples, o contrato inteligente está transferindo tokens de endereço para endereço e é tudo.
É necessário escrever testes como este:
- gerar duas carteiras (por exemplo Alice & Bob),
- execute a função de transferência de Alice para bob com ativos iguais a 1 ETH,
- espere que a carteira Bob aumente o valor em 1 ETH,
- espere que a carteira Alice diminua em 1 ETH,
- verifique se os casos extremos são tratados adequadamente, como uma tentativa de transferir mais fundos do que possui, etc.
O que faz?
“Testar um contrato inteligente facilita a identificação de bugs e vulnerabilidades e reduz a possibilidade de erros de software que podem levar a explorações dispendiosas.”
De acordo com o exemplo acima com Alice e Bob, o teste verifica os recursos implementados antes da implantação. Eles devem lançar erros para bugs e permitir identificá-los facilmente, se os testes forem descritos corretamente.
fontes de definições:
Ferramentas
Os contratos inteligentes são escritos principalmente em Solidity, mas o teste é feito com JavaScript. Diferentes plataformas, soluções oferecem alguma arquitetura fácil para teste, uma delas é a trufa.
Mais sobre trufa:
Truffle cria uma estrutura de pastas adequada que é a mesma para todos os projetos, resumidamente:
- existe uma pasta de contratos na qual os contratos são armazenados,
- e há uma pasta de testes que armazena os testes.
mocha.js:
documentos chai.js:
No arquivo de teste, os contratos são iniciados e, em seguida, diferentes condições são verificadas.
Os testes são executados com o comando cli no nível do terminal e é tudo.
Para ter o contrato implantado localmente e implementar carteiras geradas com alguns fundos, extremamente útil é o ganache do kit de ferramentas de trufas. Ele apenas executa um blockchain loca e cria carteiras com saldo de 100ETH.
Mais sobre ganache:
Waffle
É outra ferramenta de teste de contrato inteligente criada pela ETHWorks.
“Ele permite criar novos contratos inteligentes e testá-los usando Mocha e Chai. Muitas pessoas preferem o Waffle ao invés da Trufa, pois é mais simples e fácil de aprender.”
Mais em:
Conclusão
Testar contratos inteligentes é uma habilidade poderosa e realmente necessária, que pode evitar a perda de uma grande quantidade de ativos. Blockchain é imutável, se o contrato for implantado com erros, no cenário de sorte ele perde apenas alguns recursos. O pior caso é quando algum usuário perde fundos.





































![O que é uma lista vinculada, afinal? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)