testing - 在使用js的truffle测试中,如何设置`contract`后面的参数?
问题描述
比如WhitelistedCrowdsale.test.js
在openzeppelin-solidity
:
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()
)。他们只是将数组分解为特定的变量名。_
is accounts[0]
, wallet
isaccounts[1]
等。您可以随意命名它们。
推荐阅读
- applescript - 如何解决 AppleScript <
> 命令在脚本编辑器中工作,但保存为 .app 时失败? - visual-studio-code - vscode.WorkSpaceEdit:它是否适用于当前未在编辑器中打开的文件
- ffmpeg - 是否可以强制 ffmpeg 对 H.264 输入流使用硬件解码?
- python - 多项式回归打印特征名称和学习函数的截距
- django - 用于循环的 django 模板语言
- jquery - 滚动条仅在顶部
- bash - 我如何获得用完 cygwin 的过程的 Windows PPID?
- javascript - Express 中的 CSS 引用失败:为什么以及如何解决?
- rust - 为什么 Cow 的定义在 Owned( ::Owned) 中使用“as”?
- php - 如何从 Laravel 5.4 的表单中提取复选框信息?