Revert-Opcode
如何使用 Brownie 擷取“revert()”錯誤?
我正在使用Brownie開發我的智能合約,這有助於我引入智能合約,請參閱doc。
當我的電話
Example.greet()
有什麼方法可以在我的測試期間返回錯誤消息並根據它採取行動?還要找出它是否因為交易沒有氣體而被恢復。松露也回答了類似的問題:$$ how to catch “revert” error in truffle test javascript? $$.
帶有
revert()
消息的簡單合約範例:contract Example{ function greet(){ revert("Hello World"); } }
brownie.reverts
上下文管理器正好處理這個案例。語法非常類似於pytest.raises
:import brownie def test_greet(example): with brownie.reverts("Hello World"): example.greet()
包含錯誤字元串是可選的,如果省略它,無論返回的消息如何,都可以擷取任何還原。
- 資料來源:布朗尼文件 -處理還原的交易