幾天前我一直在學習solidity。它非常簡單有趣,但它有很多自己無法解決的問題。這是此類問題之一。在某個合約的單元測驗的源代碼中,我找到了 it(...).then() 函式。
var DAppToken = artifacts.require("./DAppToken.sol");
contract("DAppToken", (accounts) => {
it("transfers taken ownership", async () => {
const dappTokenInstance = await DAppToken.deployed();
return await dappTokenInstance.transfer.call(accounts[1], 99999999999999999999999999999);
}).then(assert.fail).catch((error) => {
assert( error.message.indexOf("revert") >= 0, "error message must contain revert");
});
});
它沒有按我的預期執行。我收到以下錯誤。
TypeError: it(...).then 不是函式
我不確定這個錯誤。
我該如何幫助我?
uj5u.com熱心網友回復:
.then不應該來之后it。它必須附加到回傳的承諾中。
it("transfers taken ownership", async () => {
const dappTokenInstance = await DAppToken.deployed();
return await dappTokenInstance.transfer.call(accounts[1], 99999999999999999999999999999)
.then(assert.fail).catch((error) => {
assert( error.message.indexOf("revert") >= 0, "error message must contain revert");
});
});
在這種情況下,.then用于await捕獲錯誤之后。有點try/catch
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/406783.html
標籤:
