比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads

scaffold-eth 挑戰:測試覆蓋率(Part3)_THE

Author:

Time:1900/1/1 0:00:00

譯文出自:登鏈翻譯計劃

譯者:翻譯小組

校對:Tiny熊

我知道,你想直接部署合約和前端,并立刻就開始在測試網上進行測試,但是......我們需要確定一切都按預期工作,而不需要在前端用戶界面上進行monkey測試。

因此,在文章的下一部分,我將介紹一些開發人員應該做的事情:測試合約邏輯!

Waffle

Waffle是一個用于編寫和測試智能合約的庫,它與ethers-js配合得非常默契。

Waffle有很多有幫助的工具。waffle中的測試是用Mocha和Chai一起編寫的。你可以使用不同的測試環境,但Waffle的匹配器(matcher)只能在chai下工作。

我們將使用Chai匹配器來驗證我們所期望的條件是否已經滿足。

在寫完所有的測試用例后,你只需要輸入yarntest,就會自動針對你的合約進行測試。

我不會解釋如何使用這個庫,我將專注于應該測試什么。

我們的合約已經實現了一些邏輯:

用mapping(address=>uint256)publicbalances保存用戶余額

有一個最小質押金額的閥值uint256publicconstantthreshold=1ether。

Wemade與Etherscan達成合作,將開發WEMIX3.0及Kroma區塊鏈瀏覽器:5月26日消息,韓國游戲公司Wemade與Etherscan宣布已達成戰略合作,雙方將共同開發區塊鏈瀏覽器。據悉,未來將開發WEMIX3.0區塊鏈瀏覽器及Kroma區塊鏈瀏覽器。Kroma是Wemade所開發的Optimism以太坊Layer2 項目。(prnewswire)[2023/5/26 9:44:50]

有一個最大的時間限制(deadline)uint256publicdeadline=block

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

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

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

Injective推出Cascade,支持Solana生態合約和DApp部署至Injective:3月30日消息,Cosmos 生態智能合約平臺 Injective 宣布推出 IBC 生態系統的首個 Solana SVM Rollup Cascad,該集成將把 Solana Sealevel 虛擬機 (SVM) 帶入 Cosmos ,使 Solana 開發人員能夠快速將他們的 Solana 合約和 DApp 部署到 Injective 上[2023/3/30 13:35:58]

);});

第一個測試:如果在質押金額沒有達到閾值的情況下調用execute()函數,它將撤銷交易并返回適當的錯誤信息。

第二個測試:連續兩次調用execute()函數,質押已經完成,交易應該被撤銷,防止再次調用。

第三個測試:在時間到deadline之后調用execute()函數。交易應該被撤銷,因為只能在時間到deadline之前調用execute()函數。

最后一個測試:如果所有的要求都滿足,那么execute()函數不會回退,并且所有都如預期一樣。在函數調用外部合約后,completed變量應該是true,外部合約balance應該等于用戶的質押金額,我們的合約余額應該等于0。

如果一切正常,運行yarntest應該會有這樣的輸出:

Etherscan正在為Arbitrum構建資源管理器,或將于7月準備就緒:以太坊擴容網絡Arbitrum開發團隊Offchain Labs宣布與以太坊區塊鏈資源瀏覽器Etherscan達成合作關系,目前Etherscan正在為Arbitrum構建一個資源管理器,可能會在7月準備就緒。另外,區塊鏈開發平臺Alchemy將把其開發者平臺帶入到Arbitrum,旨在以低成本在Arbitrum上擴展去中心化應用。[2021/5/28 22:51:40]

完整測試代碼

下面我們來看看整個測試代碼:

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

BitMax交易所將上線Seascape Network (CWS):據官方消息,BitMax交易所(BTMX.io)將于2月8日 22:00(北京時間)上線Seascape Network (CWS),并開放CWS/USDT交易。充提現已開放。

Seascape Network是一個自帶激勵機制的游戲開發平臺,將新用戶應用DeFi生態系統的全過程游戲化和便捷化。用戶可在區塊鏈游戲和去中心化金融間自由切換。更多詳情請至BTMX官網查詢。[2021/2/8 19:10:54]

);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

分析 | 以太坊主流交易所24H交易量保持穩定 ?Grayscale相關持倉量呈增長趨勢 ?:據 TokenGazer 數據分析顯示,截止至 10 月 31日 11 時,以太坊價格為$182.39,總市值為$19,764.65M,主流交易所24H交易量仍然保持較高水平,當前交易量約為$119.74M,保持穩定;近期以太坊對比特幣匯率平穩波動;基本面方面,以太坊鏈上交易量、新增地址增速、鏈上DApp交易量、算力保持相對穩定;以太坊 30 天開發者指數約為 2.24;以太坊與 BTC 180 天關聯度有一定上行趨勢,30 天 ROI 有一定回調;據TokenGazer官網六道數據顯示,Grayscale以太坊持倉量近期呈現上升趨勢;ERC20 代幣總市值約為以太坊總市值的 62.05%。[2019/10/31]

);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反彈迫在眉睫?

Tags:CONSTAETHTHEConfluxRestaurant DeFiLSETH幣TOGETHERBnB游戲

以太坊交易所
XT關于杠桿專區新增OMG免息杠桿的公告_USDT

尊敬的XT用戶: 為滿足用戶對杠桿交易的多方面需求,提高用戶的交易體驗感,XT杠桿交易區現已新增資產及其交易對.

1900/1/1 0:00:00
Circle計劃在新加坡建立亞洲中心以擴展業務_CLE

據CoinDesk11月10日消息,Circle宣布計劃在新加坡建立亞洲中心,作為其全球擴張計劃的關鍵部分.

1900/1/1 0:00:00
ZBG關於DOGE、DASH暫停充值並更新充值地址的公告_USDT

公告編號2021111002各位關心ZBG的投資者們和項目方:DOGE、DASH因錢包維護暫停充值,並將更新充值地址,使用者需要生成新的充值地址再進行充值.

1900/1/1 0:00:00
區塊鏈游戲基礎設施提供商 Forte 完成 7.25 億美元 B 輪融資,Sea Capital 和 Kora Management 領投_VENT

鏈聞消息,針對游戲發行商的區塊鏈游戲基礎設施提供商Forte宣布完成7.25億美元B輪融資,SeaCapital和KoraManagement聯合領投.

1900/1/1 0:00:00
一文了解游戲的歷史及游戲轉移到區塊鏈的五大原因_NODE

文:MICHAELNADEAU編譯:Zion??????責編:karen對外面的世界一無所知的人可能都知道,游戲產業一直處于飛速發展之中。它是從新冠疫情大流行中受益的行業之一.

1900/1/1 0:00:00
ENS開放認領,市值逼近dYdX_OPEN

作者|秦曉峰 編輯|郝方舟 出品|Odaily星球日報北京時間今天上午8點,以太坊域名服務發布其治理代幣ENS并開放空投認領.

1900/1/1 0:00:00
ads