Truffle
如何在測試案例中獲取需求消息?松露測試
例如,我正在為智能合約執行測試案例,它的測試功能需要驗證。
function test(uint _id) public pure returns(bool){ require(_id == 0 ,"not valid!"); return true; }
但是當我執行測試案例時,它會拋出一個錯誤
AssertionError:錯誤:處理事務時出現 VM 異常:還原
測試案例:
it("Adding test into blockchain", async () => { const result = await Instance.test(1); expect(result).to.be.not.equal('null'); }); it("Adding zero Id test into blockchain", async () => { const result = await Instance.test(0); //TODO: get error message });
當然會觸發異常
你在第一次測試中
require(_id == 0 ,"not valid!");
你餵牠 _id=1 (test(1)) 因此會引發異常。
使用 test(0) 進行測試
或者
檢查嘗試/擷取異常如下:
try { await Instance.test(1); } catch (error) { Error = error; } assert.notEqual(Error, undefined, 'Error must be thrown'); assert.isAbove(Error.message.search('VM Exception while processing transaction: revert'), -1, 'Error: VM Exception while processing transaction: revert'); });