首页 > 解决方案 > 在使用js的truffle测试中,如何设置`contract`后面的参数?

问题描述

比如WhitelistedCrowdsale.test.jsopenzeppelin-solidity

contract('WhitelistedCrowdsale', function ([_, wallet, authorized, unauthorized, anotherAuthorized]) { ... }在第 12 行。

为什么是的function(...)参数_, wallet, authorized, unauthorized, anotherAuthorized?它们可以是其他东西吗?为什么?

谢谢!

标签: testingethereumsoliditycontracttruffle

解决方案


Truffle 会从您连接的节点注入可用的帐户列表。从松露文档

contract() 函数提供了您的以太坊客户端可用的帐户列表,您可以使用它来编写测试。

要使用这些帐户,您可以像这样编写测试用例:

contract(‘MyContract’, function(accounts) {
  it(‘test1’, function() {
    const account = accounts[0];
    // do something with account
  }
});

accounts只是一个数组。您发布的来自 OpenZeppelin 的代码预计节点中至少有 5 个帐户可用(相同的帐户数组可通过 获得web3.eth.getAccounts())。他们只是将数组分解为特定的变量名。_is accounts[0], walletisaccounts[1]等。您可以随意命名它们。


推荐阅读