div#pop_ad { opacity: 0; }
AD
首页 > 数字货币 > 正文

使用Remix-IDE进行智能合约测试

[2021-01-29 04:25:03] 来源: 编辑:wangjia 点击量:
评论 点击收藏
导读: 一、简 介Remix-IDE 是一个在线智能合约开发的网站,包含一些运行环境,可以在线上直接编写合约脚本,并且进行合约测试。本文完成通过完成一个智能合约脚本的测试过程,来达到熟练掌握Remix-ID
一、简 介
Remix-IDE 是一个在线智能合约开发的网站,包含一些运行环境,可以在线上直接编写合约脚本,并且进行合约测试。

本文完成通过完成一个智能合约脚本的测试过程,来达到熟练掌握Remix-IDE 以及智能合约的开发以及测试的目的。



二、Remix-IDE 布 局

使用Remix-IDE进行智能合约测试


先简单看下界面中的每个部分有什么作用:
1. 图标面板(IconPanel)
单击以更改哪个插件显示在侧面板中,这里面从上到下依次有: 文件浏览、切换脚本语言用Vyper、切换脚本语言用Solidity、运行换部署合约脚本、脚本的金泰分析(检测语法错误)、单元测试、插件管理
2. 侧面板(SidePanel)
大多数(但不是全部)插件将在此处展示它的操作界面。如果你点击"文件浏览",这里会显示当前脚本文件。
3. 主面板(MainPanel)
主要用于编辑文件。在选项卡中可以是用于IDE编译的插件或文件。
4. 终端(显示执行结果)
您将在其中查看与GUI交互的结果。您也可以在此处运行脚本。

三、 运 行 环 境


使用Remix-IDE进行智能合约测试

环境选择





RemixIDE 包含两种智能合约脚本语言环境,Solidity 和 Vyper。



如果你喜欢暗黑色的背景,你可以在这里设置:



使用Remix-IDE进行智能合约测试

主题设置







四、智 能 合 约 编 写

与Python类似,这两种脚本语言的 执行文件过程也基本相同。
虽然Python脚本执行为

python file_name.py

使用vyper编译脚本

vyper file_name.vy

使用solidity编译脚本

solc file_name.sol




此处,我们使用Solidity编写一个简单的智能合约,现在就算你都不理解也不要紧,后面我们会有逐行的讲解:


Solidity智能合约
pragma solidity >=0.4.22 =0.4.22 




该合约能完成的事情并不多(由于以太坊构建的基础架构的原因):它能允许任何人在合约中存储一个单独的数字,并且这个数字可以被世界上任何人访问,且没有可行的办法阻止你发布这个数字。当然,任何人都可以再次调用 set ,传入不同的值,覆盖你的数字,但是这个数字仍会被存储在区块链的历史记录中。随后,我们会看到怎样施加访问限制,以确保只有你才能改变这个数字。


简单的讲:

这个智能合约帮你存一个数到区块链中。





关于测试:
如何测试这个合约是否正确,那么就看用户set(x)写入到区块链中的数字,是否与他get()到的数字x相同。就知道是否数据写入的正确无误。








五、执 行 智 能 合 约



在RemixIDE 文件浏览中,点击+图标,添加一个文件`Demo.sol`将上面的合约脚本代码复制到该文件中。


一般会自动编译,编译报错会爆红色信息,否则在左侧,Solidity图标处,可以看到编译成功的√对勾。点击侧边栏中部署图标,进行账户地址的相关配置,就可以将智能合约部署在区块链中。


但是在这之前,也就是本文的关键,我们需要对这个脚本进行测试。即:编写智能合约测试脚本,并执行测试。






六、编 写 智 能 合 约 测 试 脚 本

点击左侧,进入单元测试。
内容如下:



使用Remix-IDE进行智能合约测试

测试页面






点击Generate test file生成测试脚本。

生成的后缀是 _test 的测试文件的基本模板。

改名为`Demo_test.sol`,并编写如下内容进行测试:
pragma solidity >=0.4.22 


先勾选`RunTests`下面的测试文件,然后点击`RunTests`进行合约测试。
需要了解的基本的合约测试知识:```除此之外,Remix还允许使用一些特殊功能来使测试更具结构性。他们是:


beforeEach() -每次测试前运行




beforeAll() -在所有测试之前运行




afterEach() -每次测试后运行




afterAll() -在所有测试后运行




这个脚本,主要用到了`beforeAll ()`在测试之前来创建自己合约的对象。

七、智 能 合 约 测 试




逐行解释测试脚本:
pragma solidity >=0.4.22 


了解并完成了测试脚本后,并勾选了对应的文件,就可以点击`RunTests`运行脚本测试:



使用Remix-IDE进行智能合约测试


结果如上,则表示通过测试脚本。







使用Remix-IDE进行智能合约测试


添加新手交流群:币种分析、每日早晚盘分析

添加助理微信,一对一亲自指导:YoYo8abc

查看更多:

为您推荐