Testare gli Smart Contract
Come testare i contratti intelligenti e perché farlo?
Il passaggio fondamentale per lo sviluppo di contratti intelligenti per le tue soluzioni web3 è testarlo prima ancora di implementarlo su testnet. L'esecuzione di test che verificano la funzionalità implementata è fondamentale!
Ordine del giorno:
- introduzione,
- che cos'è?
- cosa fa?
- utensili,
- conclusione.
"Testare un contratto intelligente significa eseguire un'analisi e una valutazione dettagliate di un contratto intelligente per valutare la qualità del suo codice sorgente durante il ciclo di sviluppo."
In parole semplici e pratiche: il test sta scrivendo semplici varianti dell'utilizzo delle caratteristiche e prevedendo che i risultati siano uguali alle affermazioni predefinite.
Semplice esempio, il contratto intelligente sta trasferendo token da un indirizzo all'altro ed è tutto.
È necessario scrivere un test come questo:
- generare due portafogli (ad esempio Alice & Bob),
- eseguire la funzione di trasferimento da Alice a bob con asset pari a 1 ETH,
- aspettarsi che il portafoglio Bob aumenti il valore di 1 ETH,
- aspettati che il portafoglio Alice diminuisca di 1 ETH,
- controlla se i casi limite sono gestiti correttamente, come un tentativo di trasferire più fondi di cui è di proprietà, ecc.
Cosa fa?
"Testare uno smart contract semplifica l'identificazione di bug e vulnerabilità e riduce la possibilità di errori del software che potrebbero portare a costosi exploit".
Secondo l'esempio precedente con Alice e Bob, i test controllano le funzionalità implementate prima di un'ulteriore distribuzione. Dovrebbero generare errori per bug e consentire di identificarli facilmente, se i test sono descritti correttamente.
fonti di definizioni:
Utensili
I contratti intelligenti sono scritti principalmente in Solidity, ma i test vengono eseguiti con JavaScript. Diverse piattaforme, soluzioni offrono alcune semplici architetture per i test, una di queste è il tartufo.
Maggiori informazioni sul tartufo:
Truffle crea una struttura di cartelle adeguata che è la stessa per ogni progetto, in breve:
- c'è una cartella del contratto in cui sono archiviati i contratti,
- e c'è una cartella dei test che memorizza i test.
mocha.js:
documenti chai.js:
Nel file di test vengono avviati i contratti e quindi vengono verificate le diverse condizioni.
I test vengono eseguiti con il comando cli dal livello del terminale ed è tutto.
Per avere un contratto distribuito localmente e implementare portafogli generati con alcuni fondi, estremamente utile è la ganache di tartufo toolkit. Gestisce solo una blockchain locale e crea portafogli con un saldo di 100ETH.
Maggiori informazioni sulla ganache:
Cialda
È un altro strumento di test del contratto intelligente creato da ETHWorks.
“Ti consente di creare nuovi contratti intelligenti e testarli utilizzando Mocha e Chai. Molte persone scelgono il waffle al posto del tartufo, perché è più semplice e facile da imparare”.
Di più in:
Conclusione
Testare contratti intelligenti è un'abilità potente e davvero necessaria, che può prevenire la perdita di enormi quantità di risorse. Blockchain è immutabile, se il contratto viene distribuito con errori, nello scenario fortunato ha perso solo alcune funzionalità. Il caso peggiore è quando un utente perde fondi.

![Che cos'è un elenco collegato, comunque? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































