Как передать параметры конструктора контракту, который мы хотим протестировать? Я понимаю, что первоначальное развертывание контракта происходит в migrations
файле, но если в целях тестирования/отладки мы хотим развернуть и создать экземпляр контракта в Truffle Console, как нам это сделать? Как насчет наших тестовых файлов?
Например, скажем, наш ExampleContract.sol
файл:
contract ExampleContract { function ExampleContract(uint256 my_param){} })
И наш 2_deploy_contracts.js
файл имеет эту строку вверху, но не развертывает контракт:
var ExampleContract = artifacts.require("./ExampleContract.sol");
Мы открываем консоль Truffle Ganache, а затем переносим наши данные в:
truffle console --network ganache
migrate --compile-all
Теперь у нас есть информация о контракте (включая его адрес), хранящаяся в ExampleContract
, но как мы можем затем создать его экземпляр с параметрами, которые мы хотим передать в его конструктор? Что является эквивалентом объекта deployer.deploy
, migrations
которому мы можем передавать параметры?
Это немного многословно в командной строке.
Вы ищете new
.
Пытаться:
var c;
ExampleContract.new(arg1, arg2)
.then(function(instance) {
c = instance;
});
Это развернет новый с аргументами, переданными конструктору.
Он не использовал развертыватель, поэтому не будет обновлять реестр миграций.
Надеюсь, поможет.