区块链测试 以太坊 truffle是什么 怎么用

Posted 软件工程小施同学

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了区块链测试 以太坊 truffle是什么 怎么用相关的知识,希望对你有一定的参考价值。

一、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://blog.csdn.net/diandianxiyu_geek/article/details/78361621

 

文档

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

 

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

 

以上是关于区块链测试 以太坊 truffle是什么 怎么用的主要内容,如果未能解决你的问题,请参考以下文章

区块链开发以太坊系统下truffle构建智能合约

区块链技术:Truffle开发入门

区块链技术:Truffle开发入门

windows 以太坊开发框架Truffle环境搭建

以太坊:从入门到实践

Truffle详解