我在 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
在这样的测试中处理合约函数抛出的习语是什么?投掷是正确的行为。