В настоящее время я хочу протестировать контракт с именем B
, сгенерированный из другого контракта Registry
с использованием трюфеля.Например:
Контракт Registry
pragma solidity >=0.4.17;
import "./B.sol";
contract Registry is Owned {
function createContract(
address userAddress)
public
returns(
bool res
)
{
// create a contract B which the owner is the user.
B b = new B(userAddress);
return true;
}
Контракт B
pragma solidity >=0.4.17;
contract B {
address private owner;
constructor (
address _owner
)
public
{
owner = _owner;
}
function logData(
bytes32 data,
uint timestamp
)
public
returns(bool res)
{
...
}
...
сценарий тестирования B.js
в трюфеле / тесте:
const Registry = artifacts.require('./Registry.sol');
const B = artifacts.require('./B.sol');
const truffleAssert = require('truffle-assertions');
const assert = require('assert');
contract('Registry', (accounts) => {
let registry;
let B;
beforeEach(async () => {
// create a reportSummary contract from registry contract.
registry = await Registry.deployed();
// How can I retrieve the contract B's instance?
});
Поскольку я новичок в твердости, поэтому я не могу найти способ проверить функцию logData
или другие функции в контракте B
, который зависит от контракта Registry
.Есть ли подходящий способ или мне следует изменить оформленный контракт?Благодаря.