Truffle测试框架
Truffle测试框架
- 使用 Javascript 编写测试
这是个类似的实例,只不过使用的是async/await:
指定测试文件
我们通过如下命令限制执行测试的文件:
更多命令请参考command reference
进阶
- 使用Solidity编写测试
- Solidity测试不需要继承任何合约,这让你的测试尽可能的小,同时你也能对你写的合约能有一个完全的控制。
- Solidity不受任何断言库的影响,Truffle提供了默认的断言库,而且您可以按需修改此断言库。
- 您可以针对任何以太坊客户端运行您的Solidity测试。
实例
运行truffle test ./test/TestMetacoin.sol输出如下:
Solidity 测试具有一些高级功能,可以让你测试特殊用例。
您可以很容易地测试你的合同是否应该引发一个异常(例如require()/assert()/revert()语句;throw在早期的Solidity版本上抛出。这个主题首先由作者Simon de la Rouviere在他的教程“在Truffle Solidity测试中抛出异常”中提出。注:该教程大量使用弃用的关键词throw来抛出异常,并从Solidity v0.4.13版本开始被require(),assert()和revert()所取代。
您也可以测试您的合同如何对接收Ether做成出反应,并在Solidity中编写该交互脚本。为了达到这个目的,您的测试应该有一个叫initialBalance,返回值为uint的公有函数。这可以直接写作一个方法或者公用变量,就像下例所示。当您的测试合约部署到网络上,Truffle将从您的测试账户发送大量的Ether到您的测试合约。然后,您的测试合约可以使用这些Ether来在您的合约测试中编写与以太坊的交互。注意:initialBalance是可选的,不是必须的。
请注意,Truffle以不执行回退函数的方式将Ether发送到您的测试合同,因此您仍然可以在您的Solidity测试中使用回退函数进行高级测试用例。
来源:区块链兄弟
原文链接:
http://www.blockchainbrother.com/article/2082
Truffle测试框架的更多相关文章
- mocha测试框架-truffle
https://mochajs.org/ 学习网址: https://www.jianshu.com/p/9c78548caffa https://www.jb51.net/article/10646 ...
- Go语言打造以太坊智能合约测试框架(level1)
传送门: 柏链项目学院 Go语言打造以太坊智能合约测试框架 前言 这是什么? 这是一个基于go语言编写的,自动化测试以太坊智能合约的开发框架,使用此框架,可以自动化的部署合约,自动测试合约内的功能函数 ...
- phpunit 测试框架安装
PHPUnit是一个轻量级的PHP测试框架.它是在PHP5下面对JUnit3系列版本的完整移植,是xUnit测试框架家族的一员(它们都基于模式先锋Kent Beck的设计).来自百度百科 一.下载wg ...
- 某互联网后台自动化组合测试框架RF+Sikuli+Python脚本
某互联网后台自动化组合测试框架RF+Sikuli+Python脚本 http://www.jianshu.com/p/b3e204c8651a 字数949 阅读323 评论1 喜欢0 一.**Robo ...
- selenium测试框架使用xml作为对象库
之前已经写过一篇: selenium测试框架篇,页面对象和元素对象的管理 上次使用的excel作为Locator对象管理,由于excel处理不够方便,有以下缺点: 不能实现分page 加载Locato ...
- selenium 测试框架中使用grid
之前的测试框架:http://www.cnblogs.com/tobecrazy/p/4553444.html 配合Jenkins可持续集成:http://www.cnblogs.com/tobecr ...
- selenium测试框架篇,页面对象和元素对象的管理
前期已经做好使用Jenkins做buildhttp://www.cnblogs.com/tobecrazy/p/4529399.html 做自动化框架,不可避免的就是对象库. 有一个好的对象库,可以让 ...
- Junit测试框架 Tips
关于Junit测试框架使用的几点总结: 1.Junit中的测试注解: @Test →每个测试方法前都需要添加该注解,这样才能使你的测试方法交给Junit去执行. @Before →在每个测试方法执行前 ...
- Python几种常用的测试框架
一.测试的常用规则 一个测试单元必须关注一个很小的功能函数,证明它是正确的: 每个测试单元必须是完全独立的,必须能单独运行.这样意味着每一个测试方法必须重新加载数据,执行完毕后做一些清理工作.通常通过 ...
随机推荐
- MySQL数据库的创建&删除&选择
1.MySQL数据库的创建 方法1和2 方法3.使用PHP脚本 PHP中使用mysqli_query函数来创建或删除MySql数据库 mysqli_query函数:两个参数 返回值:执行成功 ...
- from表单中checkbox的多选,ajax转入后台,后台接受
var check = [];//定义一个空数组 $("input[name='category']:checked").each(function(i){//把所有被选中的复选框 ...
- Windows10+Android Studio 3.5编译项目报错——NDK Resolution Outcome: Project settings: Gradle model version=4.10.1, NDK version is UNKNOWN
项目背景: 系统有C.D两个盘,Android Studio安装在D盘,sdk安装在C盘. 出现的问题: 从git拉取项目后,一直编译不通过,提示“NDK Resolution Outcome: Pr ...
- svm 简单明了的入门级使用教程(转载)
如何使用libsvm进行分类 这帖子就是初步教教刚接触libsvm(svm)的同学如何利用libsvm进行分类预测,关于参数寻优的问题在这里姑且不谈,另有帖子详述. 其实使用libsvm进行分类很 ...
- 查看SVN当前登录用户
一般用户登录svn并记住用户密码后,下次再登录的时候将不需要输入用户密码,导致电脑使用着登录的时候,不知道到底登录的是个用户,只能将数据清除,现在给出查看登录用户的方法. 记录svn登录用户的文件,存 ...
- Flutter中的替换路由、返回到根路由
替换路由 当我们有三个页面,页面1,页面2,页面3. 期望点击页面1按钮,跳转到页面2,页面2点击返回,跳转到页面1: 点击页面2按钮,跳转到页面3,页面3点击返回,跳转到页面1,而不是页面2. 这时 ...
- SPI、I2C、I2S
1. SPI总线 1.1 基础概念: 技术性能 SPI接口是Motorola 首先提出的全双工三线同步串行外围接口,采用主从模式(Master Slave)架构:支持多slave模式应用,一般仅支持单 ...
- 用python文件操作实现复制图片、视频
图片复制 打开源图片: f_src = open('1.jpg','rb') 读取图片内容并存储到content变量 content = f_src.read() 打开复制后的图片,没有则创建 f_c ...
- Hosts 长期更新【已停】
修改hosts篇 [2018.1.3] 由于google的对应的hosts更新过于频繁,再加上上次(18+1)大之后,国家政策原因,网上hosts更新基本上都停了,github的项目也陆续挂掉了. 还 ...
- 解决pynq联网问题
注:本文只在一种环境下实验!不一定能适用很多环境 一.由于校园网的限制,pynq之间连接路由器存在无法联网的情况! 因此本文主要针对需要登录认证问题提供一种解决方案: 网络环境:校园网络 网络登录:锐 ...