ethereum - 如何测试由另一个已部署合约生成的合约?
问题描述
目前,我想测试一个名为的合同,该合同是使用松露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
解决方案
您可以查看我的这个答案,它也有关于从导入的合同访问函数的示例
通过web3访问该函数,只需使用Registry合约的实例即可调用Contract B的函数
推荐阅读
- windows-8.1 - 为状态工具包管理器准备安装程序。. .x 失败
- php - 如何在 if 条件下在运算符中创建动态条件
- header - 配置哈密瓜
- reactjs - 如何使用对象值并以antd形式检索
- android - 如何使用套接字从另一个应用程序获取 PWA 中的数据?
- javascript - 为什么我的表格标题在过滤表格数据时消失了?
- unity3d - 如何根据绝对位姿和相对位姿确定当前位姿?
- json - JSON 从平面键值对到嵌套对象
- java - 有没有办法在蓝牙条码扫描仪输入之前清除edittext
- javascript - 在本地 Storage js 中存储 2 个不同的数组