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测试框架相关推荐
- EOS版truffle测试框架js4eos上线了,合约一键自动化测试
EOS测试框架流程 安装js4eos npm install -g js4eos (ubuntu需要sudo) 初始化合约应用 mkdir js4eos-dapp cd js4eos-dapp js4 ...
- 软件自动测试框架,软件自动化测试框架的研究和实现
摘要: 软件自动化测试是软件工程领域的一项重要课题.随着软件工程理论的不断发展,软件自动化测试在理论上也不断达到新的高度.目前最为成熟的软件自动化测试技术是使用自动测试框架来指导自动化测试的实现.迄今 ...
- model存数据_Jepsen 测试框架在图数据库 Nebula Graph 中的实践
在本篇文章中主要介绍图数据库 Nebula Graph 在 Jepsen 这块的实践. Jepsen 简介 Jepsen 是一款用于系统测试的开源软件库,致力于提高分布式数据库.队列.共识系统等的安全 ...
- 5个最佳的Android测试框架
2019独角兽企业重金招聘Python工程师标准>>> 谷歌的Android生态系统正在不断地迅速扩张.有证据表明,新的移动OEM正在攻陷世界的每一个角落,不同的屏幕尺寸.ROM / ...
- testem方便的web tdd 测试框架使用
备注: 单元测试,对于日常的开发是比较重要的,testem 简化了我们的代码编写,以及运行. 主要特性: a. 支持的测试框架有:jasmine quint mocha buster.js ,同时也包 ...
- 自动化测试框架cucumber_BDD测试框架之Cucumber使用入门
▼ 关注测试局| 会上瘾 1什么是Cucumber cucumber早在ruby环境下应用广泛,作为BDD框架的先驱,cucumber后来被移植到了多平台,简单来说cucumber是一个测试框架,就像 ...
- ThinkPHP 集成 PHPUnit 8 测试框架进行单元测试
ThinkPHP 5.1 集成 PHPUnit 8 测试框架 本项目仅适用于运行 PHP7.2 以上的环境!对于低版本 PHP 请根据需要调整 PHPUnit 的版本! 声明 由于原项目 think- ...
- 走进Java接口测试大门之测试框架TestNG
一.简介 TestNG 是一个受 JUnit 和 NUnit 启发的测试框架,旨在简化广泛的测试需求,从单元测试到接口测试. 但引入了一些新功能,使其更强大,更易于使用,例如: 注释. 在线程池中运行 ...
- Python测试框架pytest(05)fixture - error和failed、fixture实例化、多个fixture
Python测试框架pytest系列可以查看下列 Python测试框架pytest(01)简介.安装.快速入门_编程简单学的博客-CSDN博客 Python测试框架pytest(02)PyCharm设 ...
最新文章
- pat 乙级 1027 打印沙漏(C++)
- [css] 使用css写一个垂直翻转图片的效果
- 使用Python音频双通道分离
- 中移4G模块-ML302-OpenCpu开发-MCP23017输入/输出
- 【Flink】Flink 清理过期 Checkpoint 目录的正确姿势
- python2和3切换_python2和python3切换
- python获取像素值_从PIL获取像素值列表
- 删除或复制文件提示:文件名无效或太长/目标路径太长/找不到该项目
- cachecloud java_cachecloud安装部署
- 计算机论文档案初探,[电子档案管理论文:档案计算机管理技术人才培训工作初探.doc...
- 拼多多业绩增长难继,品牌形象陷于信任危机
- 如何获取 iOS 设备 UDID?
- 中文编程语言——易语言,到底是用来干什么的?易语言值得学习吗?易语言的优势有什么?
- Jackson ImmunoResearch普通羊驼血清说明书
- studio 3t注册码脚本
- 【活动分析】某电商双十一活动分析报告
- Facebook聊单,SaleSmartly有妙招!
- 周鸿祎:微创新要极端一点
- Appium搭建MacOS环境下的iOS App自动化测试环境(Windows搭个MacOS虚拟机就行,亦无须iPhone)
- 防脱是一辈子的事业!!!(含测评不含推广
热门文章
- 初中数学分几个模块_11.初中数学:xy4x+6y5,怎么因式分解?分组配方法再平方差...
- verilog coding style_韩嫕:坚持coding
- Android外存的读写
- 06-人脸识别-MTCNN的感性认识(转载)
- error: No implicit Ordering defined for Any
- 《Troubleshooting Windows 7 Inside Out》文摘-1
- javascript 阻止冒泡和浏览器的默认行为
- 【Advanced Windows Phone Programming】在windows phone 8中录制MP3和AAC及Amr音频
- windows 2008 r2 AD密码策略
- JS:ES11新特性