链资讯 链资讯
Ctrl+D收藏链资讯
首页 > BNB价格 > 正文

CON:scaffold-eth 挑战:测试覆盖率(Part3)_Wrapped Statera

作者:

时间:

译文出自:登链翻译计划

译者:翻译小组

校对:Tiny熊

我知道,你想直接部署合约和前端,并立刻就开始在测试网上进行测试,但是......我们需要确定一切都按预期工作,而不需要在前端用户界面上进行monkey测试。

因此,在文章的下一部分,我将介绍一些开发人员应该做的事情:测试合约逻辑!

Waffle

Waffle是一个用于编写和测试智能合约的库,它与ethers-js配合得非常默契。

Waffle有很多有帮助的工具。waffle中的测试是用Mocha和Chai一起编写的。你可以使用不同的测试环境,但Waffle的匹配器(matcher)只能在chai下工作。

我们将使用Chai匹配器来验证我们所期望的条件是否已经满足。

在写完所有的测试用例后,你只需要输入yarntest,就会自动针对你的合约进行测试。

我不会解释如何使用这个库,我将专注于应该测试什么。

我们的合约已经实现了一些逻辑:

用mapping(address=>uint256)publicbalances保存用户余额

有一个最小质押金额的阀值uint256publicconstantthreshold=1ether。

美法官批准SBF与律师见面以准备辩护材料:金色财经报道,美国联邦法官Kaplan批准Sam Bankman-Fried明日与律师见面以准备辩护材料,上周,SBF律师要求允许SBF每个工作日从法院美国检察官办公室的会议室访问两台可上网的笔记本电脑和两台“移动 WiFi 设备”,并能够在2023年8月22日出庭进行辩护。

截至美东时间8月21日下午5:00,法官尚未对辩护团队提出的每日探视申请做出决定,但裁定SBF可以于美国东部时间周二上午 8:30 至下午3:00到美国法警局律师室与他的律师会面。[2023/8/22 18:14:22]

有一个最大的时间限制(deadline)uint256publicdeadline=block

);it('executerevertedbecauseexternalcontractalreadycompleted',async()=>{constamount=ethers

);it('executerevertedbecausedeadlineisreached',async()=>{//reachthedeadlineawaitincreaseWorldTimeInSeconds(180,true);awaitexpect(stakerContract

);it('externalcontractsucessfullycompleted',async()=>{constamount=ethers

EOS网络基金会首次见面会将于11月3日21:00召开:据官方消息,EOS网络基金会将于11月3日21:00(UTC时间13:00),召开首次Zoom线上见面会。本次活动将采取定向邀约的方式,邀请来自行业的200+区块链生态赛道领军人物、头部项目创始人、社区意见领袖,共同聆听EOS基金会发展规划,勾勒未来EOS生态发展蓝图。此外,EOS基金会Executive Director Yves La Rose、Communications Director Zack Gall也将出席本次见面会,为大家分享EOS基金会近期发展规划、下一批批资助计划、项目筛选条件等消息动态。[2021/10/30 6:21:49]

);});

第一个测试:如果在质押金额没有达到阈值的情况下调用execute()函数,它将撤销交易并返回适当的错误信息。

第二个测试:连续两次调用execute()函数,质押已经完成,交易应该被撤销,防止再次调用。

第三个测试:在时间到deadline之后调用execute()函数。交易应该被撤销,因为只能在时间到deadline之前调用execute()函数。

最后一个测试:如果所有的要求都满足,那么execute()函数不会回退,并且所有都如预期一样。在函数调用外部合约后,completed变量应该是true,外部合约balance应该等于用户的质押金额,我们的合约余额应该等于0。

燃力士将举办陈伟霆粉丝见面会,在BSC发行NFT门票:运动健身饮料CELSIUS燃力士将于4月30日14:30在北京摩卡艺术中心举办陈伟霆粉丝见面会,对应的VIP门票已经通过721标准发行为BSC上的NFT门票,可以通过区块链浏览器进入Bscscan,根据邀请函上的智能合约和TokenID查看详细信息,[2021/4/29 21:11:31]

如果一切正常,运行yarntest应该会有这样的输出:

完整测试代码

下面我们来看看整个测试代码:

const{ethers}=require('hardhat');const{use,expect}=require('chai');const{solidity}=require('ethereum-waffle');use(solidity);//UtilitiesmethodsconstincreaseWorldTimeInSeconds=async(seconds,mine=false)=>{awaitethers

};describe('StakerdApp',()=>{letowner;letaddr1;letaddr2;letaddrs;letstakerContract;letexampleExternalContract;letExampleExternalContractFactory;beforeEach(async()=>{//DeployExampleExternalContractcontractExampleExternalContractFactory=awaitethers

河南省新郑市在疫情期间建设采用区块链技术的不见面开标大厅:疫情期间,河南省新郑市率先建设“莲鹤”不见面开标大厅,采用“区块链”技术,将线下开标现场搬到线上,引入具有投标身份识别、电子签章、文件上传、文件解密等多项功能的“标证通”,一部手机完成异地观看、交流互动、投标解密、定位跟踪等所有投标工作,为企业降低投标成本。率先开发建设金融服务支撑平台,利用电子保函、投标贷、中标贷等服务,为企业与金融机构之间搭建信息桥梁。(河南商报)[2020/8/25]

);describe('Testcontractutilsmethods',()=>{it('timeLeft()return0afterdeadline',async()=>{awaitincreaseWorldTimeInSeconds(180,true);consttimeLeft=awaitstakerContract

);it('timeLeft()returncorrecttimeleftafter10seconds',async()=>{constsecondElapsed=10;consttimeLeftBefore=awaitstakerContract

);});describe('Teststake()method',()=>{it('Stakeeventemitted',async()=>{constamount=ethers

动态 | 元界DNA携手RightBTC亮相东南亚 举办越南线下见面会:据官方消息,2020年1月12日,公链元界DNA于越南胡志明市公共办公空间Dreamplex举办线下见面会。元界DNA创始人初夏虎发表关于元界DNA生态路线图和未来计划的演讲。全球头部交易所RightBTC商务代表Oliver Truquet介绍了Right BTC的发展现状和成果,并称未来会持续与元界DNA深度合作,共同发展Defi生态。

?

据悉,参与此次线下见面会的还包括越南Trade Coin公司首席执行官Hoang Minh Thien,VIC集团首席技术官Tuan Tran,TomoChain区域业务发展负责人Thuy Pham女士等众多东南亚区块链行业大咖。[2020/1/13]

);it('Stake0

);it('Stakerevertedifdeadlineisreached',async()=>{//LetdeadlinebereachedawaitincreaseWorldTimeInSeconds(180,true);constamount=ethers

);it('Stakerevertedifexternalcontractiscompleted',async()=>{constamount=ethers

);});describe('Testexecute()method',()=>{it('executerevertedbecausestakeamountnotreachedthreshold',async()=>{awaitexpect(stakerContract

);it('executerevertedbecauseexternalcontractalreadycompleted',async()=>{constamount=ethers

);it('executerevertedbecausedeadlineisreached',async()=>{//reachthedeadlineawaitincreaseWorldTimeInSeconds(180,true);awaitexpect(stakerContract

);it('externalcontractsucessfullycompleted',async()=>{constamount=ethers

);});describe('Testwithdraw()method',()=>{it('Withdrawrevertedifdeadlineisnotreached',async()=>{awaitexpect(stakerContract

);it('Withdrawrevertedifexternalcontractiscompleted',async()=>{//CompletethestakeprocessconsttxStake=awaitstakerContract

);it('Withdrawrevertedifaddresshasnobalance',async()=>{//LettimepassawaitincreaseWorldTimeInSeconds(180,true);awaitexpect(stakerContract

);it('Withdrawsuccess!',async()=>{//Completethestakeprocessconstamount=ethers

);});});

你是否注意到,测试代码的覆盖率远远大于合约本身?这就是我们想看到的!测试所有的东西!

本翻译由CellETF赞助支持。

来源:https://stermi.medium.com/how-to-write-your-first-decentralized-app-scaffold-eth-challenge-1-staking-dapp-b0b6a6f4d242

参考资料

登链翻译计划:https://github.com/lbc-team/Pioneer

翻译小组:https://learnblockchain.cn/people/412

Tiny熊:https://learnblockchain.cn/people/15

Waffle:https://ethereum-waffle.readthedocs.io/en/latest/index.html

Mocha:https://mochajs.org/

Chai:https://www.chaijs.com/

Chai匹配器:https://ethereum-waffle.readthedocs.io/en/latest/matchers.html

CellETF:https://celletf.io/?utm_souce=learnblockchain

免责声明:作为区块链信息平台,本站所发布文章仅代表作者个人观点,与链闻ChainNews立场无关。文章内的信息、意见等均仅供参考,并非作为或被视为实际投资建议。

本文来源于非小号媒体平台:

登链社区

现已在非小号资讯平台发布105篇作品,

非小号开放平台欢迎币圈作者入驻

入驻指南:

/apply_guide/

本文网址:

/news/10481469.html

免责声明:

1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险

2.本文版权归属原作所有,仅代表作者本人观点,不代表非小号的观点或立场

上一篇:

比特币进入牛市交叉点,BTC反弹迫在眉睫?

标签:CONSTAETHACTBitconch Reputation HeatWrapped StateraETHDOWNMetaFactory

BNB价格热门资讯
CHE:Paycheck DeFi (CHECK)_LanaCoin

一、项目介绍 Paycheck是一个生产中的DeFi网络应用程序,具有计划的功能,例如抵押、农业、链上借贷、彩票等.

UST:加密“金融帝国”Terra:你需要了解的几件事_稳定币

查看视频 ?Hello大家好,欢迎来到白泽研究院。上期节目,我们一起讨论了最近火热的Solana公链,从中我们得知,Solana能够崛起包含了多种原因。本期视频,我们来聊一聊,Terra.

BIT:BitMart上线BitRise (BRISE)_ART

亲爱的BitMart用户:BitMart将于2021年11月15日上线代币BitRise(BRISE)。届时将开通BRISE/USDT交易对.

ISC:Axie交易总额再创新高 各路资本力挺链游赛道_Insights Network

在元宇宙、NFT等概念加持下,链游仍不断升温,龙头项目AxieInfinity最新交易总额已达30亿美元,创下历史新高.

ETH:见面会收获积极反馈,130万美元资助计划公布 | EOS生态系统进入新阶段_SYN

从我第一次正式宣布EOS网络基金会成立以来,在短短三个月内,我相信我们已经推动EOS进入了一个新的创世纪。虽然我们仍然有很长的路要走,但我们已经取得的进展是非常鼓舞人心的.

CRO:Crypto.com 生态 EVM 兼容链 Cronos 推出主网测试版,未来将支持至 Cosmos 或以太坊的跨链_Sweat Economy

链闻消息,Crypto.com生态EVM兼容链Cronos推出主网测试版,Cronos基于CosmosSDK,主网测试版的测试范围包括:EVM支持、最新版本CosmosSDK支持以及跨链桥.