ethereum - 如何在 Truffle 测试中调用成员函数?
问题描述
考虑以下设置:
contract A {
B public b = new B();
}
contract B {
function C() public pure returns (uint c)
{
c = 5;
}
}
从 Truffle 测试中,有一个 A 的实例,如何调用函数 C?
解决方案
下面是一个关于如何在 Truffle 测试中调用 C 的示例:
const A = artifacts.require('A')
const B = artifacts.require('B')
contract('A', function(accounts) {
it('should be possible to call C', async function() {
let a = await A.new({from: accounts[0]})
let addressOfB = await a.b();
let contractB = web3.eth.contract(B.abi)
let b = contractB.at(addressOfB)
console.log("Output of C: " + await (b.C()).toNumber());
})
})
合同:A
C的输出:5
✓ 应该可以调用 C (380ms)
1 次通过(400 毫秒)
推荐阅读
- python - 数据框列 str 替换为列表
- latex - 未在 toc 中的参考文献后的附录和缺少图形标签
- ios - 在 Swift 4 中使用 KeyEnumerators
- javascript - 我可以将 DOM 节点从 iFrame 移动到父母的正文吗?
- python - NameError:名称“click_entry”未定义(Python)
- gradle - gradle中依赖和依赖之间的区别
- email - 无法在蓝色棱镜中发送电子邮件-POP3/SMTP
- azure - Arm 模板:从暂存槽获取 http 触发器
- google-cloud-platform - 数据流作业失败,输出属性丢失错误
- javascript - 使用 Angularjs 只显示面板的一个元素