我正在尝试使用异步等待语法转换一些测试代码以使其正常工作。使用async-await的上述部分代码无法正常工作,而使用then的下部代码则可以正常工作。
有人可以建议我如何更正代码以使其正常工作吗?谢谢
不工作
it("transfers token ownership", async () => {
tokenInstance = await DappToken.deployed();
try {
return tokenInstance.transfer.call(accounts[1], "9999999999999999");
} catch (error) {
console.log("error ", error);
assert(
error.message.indexOf("revert") >= 0,
"Error message must contain revert"
);
}
});
工作中
it("transfers token ownership", function() {
return DappToken.deployed()
.then(function(instance) {
tokenInstance = instance;
return tokenInstance.transfer.call(accounts[1], 9999999999999999999);
})
.then(assert.fail)
.catch(function(error) {
// console.log("error", error);
assert(
error.message.toString().indexOf("invalid") >= 0,
"error message must contain revert"
);
return tokenInstance.transfer.call(accounts[1], 250000, {
from: accounts[0]
});
})
以下代码有效!
希望这对其他人有帮助:)
it("transfers token ownership", async () => {
tokenInstance = await DappToken.deployed();
try {
await tokenInstance.transfer.call(accounts[1], "9999999999999999");
assert(false);
} catch (error) {
assert(
error.message.indexOf("revert") >= 0,
"Error message must contain revert"
);
}
});