Web3 通过truffle 脚本进行智能合约测试

上文 Web3 处理智能合约部署到本地区块链,并在本地进行测试中 我们讲解了部署智能合约 然后在终端测试的方法
但上文那种终端测试 其实并不保险 而且也比较不专业
对于这个 有一个mocha测试 这是基于node部署环境的一种环境测试 但是这个需要一定的基础 大家可以专门去学一下
还有就是 今天要说的 truffle 脚本
他是一个脚本执行器

先打开我们的 Truffle项目
在这里插入图片描述
在根目录下创建一个文件夹,这个其实叫什么都可以。
我这里 直接叫 scripts

然后 里面直接放脚本 js文件 名字随便起
我这里直接叫 test.js
在这里插入图片描述
然后 我们这里的脚本是有一个引入的操作
在这里插入图片描述
直接将上面这句也拿到我们脚本js中

const Contacts = artifacts.require("StudentStorage.sol")module.exports = function(callback) {console.log("脚本执行");callback()
}

在这里插入图片描述
当然 我们先不急着去用 还是先让它跑起来
然后 我们以管理员身份打开项目终端 输入

truffle exec 需要执行的脚本路径

那么 我这个显然就是

truffle exec .\scripts\test.js

在这里插入图片描述
然后 我们刚刚写的脚本就跑起来了

那么 确认没问题之后 我们就可以写我们真的想看的东西了

我们先将test.js的代码改成这样

const Contacts = artifacts.require("StudentStorage.sol")module.exports = async function(callback) {const studentStorage = await Contacts.deployed();callback()
}

这里 我们给方法定上了async 然后 await 异步等待ontacts.deployed
智能合约实例化
然后 等待完成 就拿到这个合约的实例了

然后 我们进一步去写

await studentStorage.setData(11,"天山派掌门");
const res = await studentStorage.getData();
console.log(res);

在这里插入图片描述
我们利用拿到的合约对象 去调用其中的 set方法赋值 然后 调用get获取数据 他们都是异步的 所以 要加一个await 让他们执行完成之后 再继续往下
最后拿到get取回来的值 然后输出在控制台上
然后 我们还是先终端执行

truffle migrate

将合约部署到区块链中
然后 再次运行

truffle exec .\scripts\test.js

去操作合约
在这里插入图片描述
可以看到 我们的数据就正常展示了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/12964.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构-ArrayList

目录 线性表 顺序表 ArrayList ArrayList的使用 ArrayList的构造方法 ArrayList的常用方法 ArrayList的遍历 实现简单的ArrayList 洗牌算法 删除公共字符串问题 杨辉三角 线性表 线性表是n个具有相同特性的数据元素的有限序列.线性表是一种在实际中广泛使用的数据结…

kubectl详解之声明式管理方法

目录 一、声明式管理方法二、资源配置清单的管理2.1 查看资源配置清单2.1 修改资源配置清单并应用2.1.1 离线修改2.1.2 在线修改 一、声明式管理方法 适合于对资源的修改操作 声明式资源管理方法依赖于资源配置清单文件对资源进行管理 资源配置清单文件有两种格式:…

部署LVS-DR群集

目录 1、LVS-DR数据包流向分析 2、LVS-DR中ARP问题 3、LVS-DR特性 LVS-DR的优缺点 1、LVS-DR数据包流向分析 (1)客户端发送请求到 Director Server (负载均器),请求的数据报文(源 IP 是CIP,目标 IP 是 VIP) 到达内核空间。 (2) Director Server 利 …

SpringBoot使用EasyExcel批量导出500万数据

SpringBoot使用EasyExcel批量导出500万数据 说明excel版本比较EasyExcel介绍项目目录mysql对应表建表语句pom.xmlapplication.yml配置类启动类代码OrderInfo 实体类OrderInfoExcel excel模版标题类(EasyExcel需要使用这个)TestController控制层接口层TestServiceTestServiceImp…

行为型模式-策略模式(一)

今天就说一说设计模式中的策略模式,从名字来讲,意思就是,对应不同的情况,就有一种解决问题的办法,不同的情况,就有不同的应对方法,这就是策略模式,非常的智能化。 也可以参考菜鸟 …

阿里云服务器扩容记录

先在控制台选择云盘扩容,然后才能在服务器操作: blkidlsblk -n df -Thapt-get updatetype growpart || apt-get install -y cloud-guest-utilstype sgdisk || apt-get install -y gdiskLC_ALLen_US.UTF-8 growpart /dev/vda 3 resize2fs /dev/vda3

svn下载及使用

下载 链接:https://pan.baidu.com/s/1RV6vAujA1anHhXJuKbItUQ?pwdflzx 提取码:flzx 这是svn安装包以及中文安装包,放在百度网盘了,有需要可以下载 注意:svn中文语言包安装的版本需要和svn的版本一致 他有两种安装…

计算机视觉 3D点云极简概述

一、概述 点云是表示 3D 坐标系中的数字 3D 物理对象或空间的点数据库。它由数百万或者更多个单独的测量点组成,具有 x、y 和 z 坐标。3D点云是物体的高精度数字记录。点云用于生成用于 3D 建模的 3D 网格和其他模型。包括医学成像、3D 打印、制造、建筑、3D 游戏和虚拟现实 (…

RAID5重建失败的服务器数据恢复案例

服务器数据恢复环境: 一台IBM某型号服务器,4块SAS磁盘组建了一组RAID5磁盘阵列。服务器安装的windows server操作系统,上面运行了一个Oracle单节点,数据存储为文件系统,无归档。该oracle数据库的数据量不大&#xff0c…

UG NX二次开发(C#)-建模-根据特征获取体(或者关联体)

文章目录 1、前言2、创建块特征与UIStyler2.1 创建两个长方体2.2 创建一个UIStyler3、添加获取体的代码1、前言 UG NX的建模是基于特征建模的,比如块、圆柱体、合并操作等等都是特征,都有特征对象,对于具有体的特征,其可以通过NXOpen二次开发技术实现二者的转换,也可以通…

网络编程套接字

目录 网络编程基础 为什么需要网络编程? 什么是网络编程 网络编程中的基本概念 发送端和接收端 请求和响应 客户端和服务端 常见的客户端服务端模型 Socket套接字 概念 分类 Java数据报套接字通信模型 Java流套接字通信模型 Socket编程注意事项 UDP数…

List移除元素的四种方式

List 移除某个元素 四种方式: 方式一,使用 Iterator ,顺序向下,如果找到元素,则使用 remove 方法进行移除。方式二,倒序遍历 List ,如果找到元素,则使用 remove 方法进行移除。方式…