Truffe: comment configurer certains attributs du contrat intelligent avant d’écrire le test

hqt

Truffe: comment configurer certains attributs du contrat intelligent avant d’écrire le test


Par exemple, j’ai un contrat intelligent avec 2 attributs:

 contract SimpleSmartContract   { uint256 currentPrices ; mapping ( uint8 =>  uint256 )   public  priceIncrements ; 
 } 

Lorsque j’écris test, je veux tester certaines situations (cela dépend de l’état des attributs). Ma question est: comment puis-je configurer les données pour ces variables avant d’exécuter des tests. (c’est-à-dire: définissez currentPrices sur 100 et configurez la carte sur certaines données auparavant).

Merci

Réponses


 Ismael

Une astuce que j’utilise est de créer un contrat de test qui hérite de mon contrat. Je crée une méthode qui configurera les valeurs correctes

 contract SimpleSmartContractTest   is   SimpleSmartContract   { 
     function  setup ()   public   { currentPrices =   1234 ; priceIncrements [ 1 ]   =   100 ; priceIncrements [ 2 ]   =   110 ; priceIncrements [ 3 ]   =   120 ; 
     } 
 } 

Maintenant, lorsque je SimpleSmartContractTest mon test, je crée une instance de SimpleSmartContractTest mais comme il hérite de SimpleSmartContract toutes les méthodes sont disponibles.

 const   SimpleSmartContractTest   =  artifacts . require ( 'SimpleSmartContractTest' ); contract ( 'SimpleSmartContract' ,   ( accounts )   =>   { 
     let  simpleSmartContract ; before ( async   ()   =>   { simpleSmartContract =   await   SimpleSmartContractTest . new ( constructorParams ..) 
         await  simpleSmartContract . setup ( setupParams ..) 
     }) it ( 'Transfer' ,   async   ()   =>   { 
         // Here test like it was SimpleSmartContract 
         const  result =   await  simpleSmartContract . transfer ( accounts [ 1 ],   100 ,  
             {   from :  accounts [ 0 ]   }) 
         assert . equal ( result . logs [ 0 ]. event ,   'Transfer' ,   'Transfer should succeed' ) 
     }) 
 }) 

hqt

Joli tour. Je peux également faire une méthode « d’aide » dans ce contrat. : DI ont un scénario que je veux affirmer un état de contrat intelligent, à savoir: équilibre [adresse]. Comment pouvez-vous y parvenir? En écrivant également une méthode d’aide sur un faux contrat? Merci.

Ismael

@hqt Puisqu’il s’agit d’un contrat, vous pouvez ajouter plus de fonctions. Le seul problème peut être que vous ne pouvez pas accéder private fonctions private ni aux variables dans le contrat de base. Mais sinon, vous pouvez accéder public fonctions internal et public .

 

attributs, avant, certains, comment, configurer, contrat, décrire, du, intelligent, Le, test, truffe

 

yahoo

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *