首页 > 解决方案 > 如何在 Truffle 测试中调用成员函数?

问题描述

考虑以下设置:

contract A {
    B public b = new B();
}

contract B {
    function C() public pure returns (uint c)
    {
        c = 5;
    }
}

从 Truffle 测试中,有一个 A 的实例,如何调用函数 C?

标签: ethereumsoliditytruffle

解决方案


下面是一个关于如何在 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 毫秒)


推荐阅读