Mocha
斷言(假)未執行
我正在為 Solidity SC 執行 mocha 測試。我的一個測試函式應該通過,然後,就在這之後我呼叫了 assert(false),但它沒有執行。
it('only manager can call the pickWinner', async () => { try { await lottery.methods.pickWinner().call({ from: accounts[1], }); assert(false); } catch (err) { assert(err); }});
即使我在做斷言(假),測試也通過了。
因為您在測試中發現了錯誤。
Mocha 的想法是在框架級別擷取異常,而不是在“應用程序”級別。
如果測試向 Mocha 框架拋出異常,則測試失敗,否則通過。
我認為我們正在觀看相同的 udemy 課程。有對該講座的評論:
“這不起作用,因為 assert(false) 實際上會引發錯誤,所以它總是會通過。”
評論中建議的解決方案:
it('requires a minimum amount of ether to enter', async () => { let executed; try { await lottery.methods.enter().send({ from: accounts[0], value: '100' }); executed = 'success'; } catch (err) { executed = 'fail' } assert.equal('fail', executed); });