所以我正在建立一个基本的NF令牌。创建了一个基本的铸造功能和映射。我用松露测试应用程序,尝试了可靠性测试和JS测试。有以下错误。
使用网络……
NFCertificate.deployed() 如此返回一个承诺 instance.returnNumber() 。所以JS应该是:
NFCertificate.deployed()
instance.returnNumber()
contract("NFCertificate", () => { it("It should return the same number", async function() { let instance = await NFCertificate.deployed(); let expected = 1000; assert.equal(await instance.returnNumber(), expected); }); });
如 returnNumbers 是一个事件,它应该使用 emit 关键词。将事件设置为以大写字母开头也很好,否则它可能看起来像一个函数。所以 event ReturnNumbers(uint number);
returnNumbers
emit
event ReturnNumbers(uint number);
function returnNumber() public returns(uint) { uint number = 1000; emit ReturnNumbers(number); return number; }
添加async / await行应修复JavaScript测试。如果你以后想断言你的 ReturnNumbers 事件被正确发出,我建议使用我的 truffle-assertions 库,包括断言事件已发出或未发出的函数。它还包括以直接方式断言恢复和其他故障的功能。
ReturnNumbers
truffle-assertions