スローを行うSolidityコントラクトの関数があります。例えば。
function do(x,y) {
if ( msg.sender != owner )
throw;
// ...
}
Truffle 環境には、次のようなテスト js があります。
//.... part of a promise chain
.then(
function (_bool0) {
assert.isTrue(_bool0,"whoops - should be true");
return contract.do( "okdoke" , {from: accounts[1]} );
}).then(
function (tx_id) {
//..
done();
}
// ...
return contract.do() により、スローが発生する条件が発生します。これにより、このテストのTruffle テスト出力で次が生成されます。
Error: VM Exception while executing transaction: invalid JUMP
このようなテストでコントラクト関数からのスローを処理するためのイディオムは何ですか? スローは正しい動作です。