Publication
Partagez vos connaissances.
Comment tester une fonction avec un paramètre de réception dans Sui ?
J'essaie de tester la receive_object
fonction avec un Receiving
paramètre dans Sui en me basant sur la documentation de ce lien. Au départ, j'ai créé un test en utilisant l'exemple, mais j'ai du mal à faire en sorte que l'argument envoyé soit un Receiving
type. J'ai également essayé d'indiquer le type de réception, mais j'ai rencontré des erreurs. Quelqu'un pourrait-il m'aider à tester correctement cette fonction ?
- Move CLI
- Move
Réponses
4Si vous rencontrez toujours des problèmes pour indiquer le Receiving
type dans vos tests, il peut être utile de tester à l'aide de la CLI SUI. Avec la CLI, vous pouvez facilement spécifier des arguments de type à l'aide de l'--type-args
indicateur, ce qui pourrait simplifier votre scénario de test.
Dans certains scénarios de test, le transfert direct d'objets en tant que partage risque de ne pas fonctionner comme prévu, en particulier si vous recevez des erreurs liées aux droits d'instanciation. Ajuster la façon dont les transactions sont structurées pour faciliter le partage d'objets dans un premier temps, avant toute tentative de réception publique, pourrait résoudre ces problèmes.
Vous devrez peut-être d'abord structurer votre test de manière à transférer l'objet vers le TransactionBlock SharedObject
en utilisant un seul TransactionBlock. Receiving<T>
Dans un TransactionBlock suivant, vous pouvez appeler la fonction du module pour accepter, c'est-à-dire la fonction with. Cette approche garantit que l'objet est d'abord correctement partagé avant d'essayer de le recevoir.
Lors du transfert d'un objet, l'utilisation de la public_transfer
méthode est correcte si vous souhaitez attribuer la pleine propriété à l'objet, même si vous ne le transférez pas spécifiquement vers unSharedObject
. Les deux méthodes conviennent à différents cas d'utilisation, alors assurez-vous d'utiliser celle qui correspond à votre objectif.
Connaissez-vous la réponse ?
Veuillez vous connecter et la partager.
Move is an executable bytecode language used to implement custom transactions and smart contracts.