一、Truffle是什么

Truffle 提供了一套标准的自动化测试框架,这就使得测试智能合约变得简单了。

这个框架允许你以两种不同的方式编写简单和可管理的测试:

  • 使用 JavaScript 编写,从外部来执行你的合约,就像应用一样。
  • 使用 Solidity 编写,进阶的外部执行合约,适用于 bare-to-the-metal(实在不知道怎么翻译) 场景。


二、怎么用

测试示例

pragma solidity ^0.4.11;

import "truffle/Assert.sol"; //truffle公共的库
import "truffle/DeployedAddresses.sol"; //truffle公共的库
import "../contracts/Adoption.sol";

contract TestAdoption {
Adoption adoption = Adoption(DeployedAddresses.Adoption());

// 测试 adopt()
function testUserCanAdoptPet() {
uint returnedId = adoption.adopt(8); //调用输入参数

uint expected = 8; //期望的结果

Assert.equal(returnedId, expected, "Adoption of pet ID 8 should be recorded."); //判断如果没有就抛出异常
}

// 单个测试
function testGetAdopterAddressByPetId() {

address expected = this;

address adopter = adoption.adopters(8);

Assert.equal(adopter, expected, "Owner of pet ID 8 should be recorded.");
}

// 所有的测试
function testGetAdopterAddressByPetIdInArray() {

address expected = this;

address[16] memory adopters = adoption.getAdopters();

Assert.equal(adopters[8], expected, "Owner of pet ID 8 should be recorded.");
}


}









Truffle 部署 编译 测试 智能合约 的 完整实践操作

文档

https://learnblockchain.cn/docs/truffle/testing/testing-your-contracts.html


​https://www.jianshu.com/p/9e431843d450​