Truffle
如何在松露測試中傳遞 msg.sender 和建構子參數?
我有以下建構子:
constructor(address _payee) public { payer = msg.sender; payee = _payee; }
我的 JavaScript 測試中的這個函式:
beforeEach(async () => { contract = await Contract.new(payee); });
但是,我收到一個錯誤:
錯誤:合約合約建構子需要 1 個參數,收到 2 個
我確保我清除了
build
文件夾,並且我之前已經重新編譯了契約truffle compile --all
。我怎樣才能通過
msg.sender
和payee
?使用遷移部署程序部署合約時,這些建構子參數沒有問題。使用甘納許
1.2.1
和松露4.1.13
。
顯然,我只需要重新啟動ganache。部署了舊版本的契約,很可能導致不兼容。
那應該行得通。我懷疑問題出在其他地方。
它可能取決於您的版本,但我的測試文件使用
beforeEach(async function () {
- 有點不同的語法。確保這對您來說不是問題。您是否使用類似的
Contract
東西正確導入const Contract = artifacts.require('MyContract');
?(順便說一句,我不確定您是否在使用Contract
變數名的確切名稱時遇到問題 - 請確保使用另一個名稱。