Как проверить контракт без развертывания каждый раз?
Я начал изучать основательность 4 дня назад. Каждый раз, когда я следую этим шагам:
1 - Открыть ремикс на сайте Solidity Ide 2 - Установить тестовую сеть Ropsten (внедрить web3) 3 - Развернуть 4 - Некоторые реагируют на кодирование с помощью web3 js 5 - Попробуйте сделать несколько звонков из моего внешнего интерфейса или с помощью синей / красной кнопки на сайте ремиксов
Кажется, что все работает, но, например, если компилятор не найдет ошибку в коде, но я ошибаюсь в некоторой логике, мне нужно уничтожить существующий контракт с его функцией kill, а затем развернуть новый контракт с редактированием.
Я знаю, что есть трюфель для юнит-теста, и я надеюсь использовать его в будущем, но мне нужен "ручной" тест, чтобы воспроизвести взаимодействие с метамаской вручную.
2 ответа
Кажется, что все работает, но, например, если компилятор не найдет ошибку в коде, но я ошибаюсь в некоторой логике, мне нужно убить существующий контракт с его функцией kill и затем развернуть новый контракт с редактированием.
но мне нужен "ручной" тест для воспроизведения ручного взаимодействия с метамаской.
Обычно разработчики начинают с testrpc (теперь переименованного в ganache), который представляет собой локальную симуляцию для проверки контрактов на его функциональность.
Если вы используете remix ide, виртуальную машину javascript можно также использовать для ускорения итераций тестирования.
Я рекомендую переключаться на ручное взаимодействие с метамаской только после того, как любой из приведенных выше методов тестирования даст хорошие результаты. Это экономит много времени на повторное уничтожение и перераспределение контрактов.
Также, если вы планируете перейти к трюфелю, лучше начать прямо сейчас, так как он предлагает разработку через тестирование с использованием сценариев в стиле mocha, что можно сделать в самом javascript.
Вы должны использовать локальный узел ethereum для тестирования на вашей машине. Я рекомендую ганаш. После запуска вы можете подключиться к нему на локальном HTTP://127.0.0.1:7545
, `