例如openzeppelin-solidity
中的WhitelistedCrowdsale.test.js
:
contract('WhitelistedCrowdsale', function ([_, wallet, authorized, unauthorized, anotherAuthorized]) { ... }
在第 12 行。
为什么function(...)
的参数是_, wallet, authorized, unauthorized, anotherAuthorized
?它们可能是其他东西吗?为什么?
谢谢!
Truffle 注入您连接到的节点中可用的帐户列表。来自松露文档:
contract(( 函数提供了以太坊客户端可用的帐户列表,您可以使用这些帐户来编写测试。
若要使用这些帐户,请按如下所示编写测试用例:
contract(‘MyContract’, function(accounts) {
it(‘test1’, function() {
const account = accounts[0];
// do something with account
}
});
accounts
只是一个数组。您发布的 OpenZeppelin 代码预计节点中至少有 5 个帐户可用(通过web3.eth.getAccounts()
提供相同的帐户数组(。他们只是将数组分解为特定的变量名称。_
是accounts[0]
,wallet
是accounts[1]
,等等。您可以随心所欲地命名它们。