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

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

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。

Scopescan:Upbit疑似將394.4萬枚CYBER轉入幣安:金色財經報道,據Scopescan監測,Upbit疑似將394.4萬枚CYBER轉入幣安,目前仍持有34.7萬枚。[2023/9/4 13:16:10]

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

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

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

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

);});

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

Etherscan在區塊顯示頁面添加 PoS 詳細信息:金色財經報道,Etherscan 瀏覽器現已在區塊顯示頁面添加 PoS 詳細信息,包括最終狀態、區塊提議的 Slot 和 Epoch、費用接收地址以及共識信息。[2022/9/16 7:00:52]

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

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

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

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

完整測試代碼

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

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

在線經紀商Scalable Capital管理資產達到100億歐元:金色財經報道,數字財富管理平臺和在線經紀商Scalable Capital在過去12個月中將客戶資產翻了一番,管理資產達到 100 億歐元的高位。該公司于12月進入加密交易領域,現在在其平臺上擁有超過 600,000名客戶。

在Scalable Capital在由中國科技集團騰訊牽頭的E輪融資中籌集了超過1.5億歐元之后六個月,該加密貨幣發行出現了。(finextra)[2022/8/16 12:28:58]

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

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

提供加密交易的Banxso將在南非推出新交易所,受FSCA監管:2月20日消息,Banxso.com宣布推出一個新的南非交易所。該交易所計劃于2022年4月1日啟動。Banxso還計劃在年底前在另外3個國家開展業務。預計所有交易所都將受到全面監管:

- 南非的Banxso將受到FSCA的監管。

- 歐盟國家的Banxso將受到CySec的監管。

- 阿聯酋的Banxso將受到DFSA的監管。

- 英國的Banxso將受到FCA的監管。

據介紹,Banxso提供外匯(包括外匯期權)、股票、指數、大宗商品和加密貨幣交易。交易者可以選擇幾個交易平臺,包括Banxso X、MT4、MT5和一個移動應用程序平臺。Banxso集團還在塞舌爾、毛里求斯和圣文森特和格林納丁斯獲得了許可證。(Finance Magnates)[2022/2/21 10:04:39]

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

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

動態 | 瑞士銀行 Dukascopy 計劃推出穩定幣 Dukascash,將進行業內公測:據 Finance Magnates 報道,瑞士銀行 Dukascopy 計劃推出穩定幣 Dukasash,該穩定幣價值將由歐元、美元、瑞士法郎三種法定貨幣支持,該銀行公開了其代幣儲備的地址。Dukasash 將面向加密行業專業人士進行公開測試,交易的最小規模為 1000 個或以上代幣。今年 3 月 Dukascopy 推出加密貨幣 Dukascoin,或成為全球首家發行加密貨幣并啟動 ICO 的受監管銀行。[2019/6/28]

);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:CONSTAETHTHEConi TokenPASTAetherzeroDiversified Staked Ethereum Index

芝麻開門交易所下載
?Earn Daily No.312: Lock ETH & Earn, up to 0.7% APR

Gate.ioHODL&Earnrecentlyunveiledanewproduct“EarnEveryday”tofacilitateevenmorechancestoearnbyh.

1900/1/1 0:00:00
FATF 對 DeFi 合規性的新要求_VAS

在與該行業進行了兩年的反復交涉后,全球反洗錢監管機構最終敲定了它的加密貨幣指南。盡管最終版本對某些有爭議的定義作出了可喜的澄清,但業內人士警告稱,關鍵細節其實在執行過程中.

1900/1/1 0:00:00
BlockFi向美SEC提交申請,加入比特幣現貨ETF競爭行列_BLOC

本文來自?The?Block,原文作者:AislinnKeelyOdaily星球日報譯者?|念銀思唐加密資產借貸公司BlockFi與私募投資公司NeubergerBerman的合資實體Block.

1900/1/1 0:00:00
研究:半數游戲開發者已經在探索區塊鏈和NFT_區塊鏈

據Cointelegraph11月10日報道,來自英國的一項新研究表明,大多數游戲工作室已經開始為他們即將推出的游戲探索區塊鏈.

1900/1/1 0:00:00
ZT創新板即將上線SIP_ETC

親愛的ZT用戶: ZT創新板即將上線SIP,並開啟SIP/USDT交易對。具體上線時間如下:充值:已開啟;交易:2021年11月13日10:00; SIP 項目簡介:SpaceSIP(SIP)是.

1900/1/1 0:00:00
馬化騰:公司擁有大量探索和開發元宇宙的技術和能力_PIC

11月10日晚,在騰訊控股2021年第三季度業績電話會上,騰訊CEO馬化騰表示,公司擁有大量探索和開發“元宇宙”的技術和能力.

1900/1/1 0:00:00
ads