测试合约

 框架

Truffle 集成自动化测试框架让测试工作变得简单. 框架支持两种语言进行编写:

  • Javascript, 一般用于接口测试, 就像从应用调用一样.
  • Solidity, 一般用于高级测试, 测试更底层的内容.

每一种方式都有对应的优劣, 看下面的部分来看各自优劣.

 测试代码存放的位置

所有的测试代码必须存放在 ./test 目录内. Truffle 将会自动识别以 .js, .es, .es6, .jsx.sol 为扩展名的测试代码. 其他扩展名将被忽略

 测试命令

运行测试命令:

$ truffle test

此外, 当指定一个测试文件路径的时候, 将指定运行该测试文件

$ truffle test ./path/to/test/file.js

 清洁的沙箱环境

Truffle 提供了一个清洁的沙箱测试环境. 当测试环境连接本地 Ganache 或者 Truffle 开发环境 (truffle develop), Truffle 将使用高级的快照特性, 保证每个测试的环境并不相互影响. 当使用其他客户端, 例如 go-ethereum 的时候, Truffle 将会在运行每个测试文件之前重新部署所有部署合约, 以便保证有一个全新的合约用于测试.

 高效可信的测试环境选择

在运行测试的时候, 使用 Ganache 和 Truffle 开发环境都相对其他客户端更快更便捷. 此外, 两个环境都包含与 Truffle 吻合的高级特性, 用于加速近90%的速度. 一般工作流, 我们强烈推荐在开发和测试过程使用 Ganache 或者 Truffle 开发环境, 然后再在部署正式网络环境之前, 以 go-ethereum 或者其他客户端为环境测试一次.