快速学习-以太坊编写合约测试脚本

编写合约测试脚本

我们已经实现了合约的编译和部署的自动化,这将大大提升我们开发的效率。但流程的自动化并不能保证我们的代码质量。质量意识是靠谱工程师的基本职业素养,在智能合约领域也不例外:任何代码如果不做充分的测试,问题发现时通常都已为时太晚;如果代码不做自动化测试,问题发现的成本就会越来越高。

在编写合约时,我们可以利用 remix 部署后的页面调用合约函数,进行单元测试;还可以将合约部署到私链,用 geth 控制台或者 node 命令行进行交互测试。但这有很大的随意性,并不能形成标准化测试流程;而且手动一步步操作,比较繁琐,不易保证重复一致。

于是我们想到,是否可以利用现成的前端技术栈实现合约的自动化测试呢?当然是可以的,mocha 就是这样一个 JavaScript 测试框架。

安装依赖

开始编写测试脚本之前,我们首先需要安装依赖:测试框架 mocha。当然,作为对合约的测试,模拟节点 ganache 和 web3 都是不可缺少的;不过我们在上节课编写部署脚本时,已经安装了这些依赖(我们的 web3 依然是 1.0.0 版本)。npm install mocha –save-dev

进行单元测试,比较重要的一点是保证测试的独立性和隔离性,所以我们并不需要测试网络这种有复杂交互的环境,甚至不需要本地私链保存测试历史。而ganache 基于内存模拟以太坊节点行为,每次启动都是一个干净的空白环境,所以非常适合我们做开发时的单元测试。还记得 ganache 的前身叫什么吗?就是大名鼎鼎的 testRPC。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章