background
Я написал умный контракт на ethereum на языке Solidity .Для тестирования я могу запустить локальный узел, используя Ganache , и развернуть на нем свой контракт, используя truffle migrate
.
требования
Я хочу проверить свой контрактиспользуя JavaScript.Я хочу создать новый экземпляр моего контракта для каждого теста.
что я пробовал
Я создал тестовый файл tests/test.js
в своем проекте:
const expect = require('chai').expect
const Round = artifacts.require('Round')
contract('pledgersLength1', async function(accounts) {
it('1 pledger', async function() {
let r = await Round.deployed()
await r.pledge(5)
let len = (await r.pledgersLength()).toNumber()
expect(len).to.equal(1)
})
})
contract('pledgersLength2', async function(accounts) {
it('2 pledgers', async function() {
let r = await Round.deployed()
await r.pledge(5)
await r.pledge(6)
let len = (await r.pledgersLength()).toNumber()
expect(len).to.equal(2)
})
})
Я запускаю его с truffle test
.Это в основном Мокко , но трюфель определяет для вас artifacts
с подключением JavaScript к умным контрактам.
Функция трюфеля contract
- это почти то же , что и функция Мокко describe
, с небольшим изменением, которое я не понимаю!Я предполагал, что contract
сделает мой контракт новым каждый раз.Это не так.Возможно, я могу использовать что-то вроде new Round()
вместо Round.deployed()
, но я просто не знаю, как.
В решении нет для использования трюфеля.