В вашем тестовом контракте есть пара проблем. Во-первых, вы не инициализируете свой тестовый контракт для хранения какого-либо эфира. Следовательно, TestContract
не имеет средств для отправки на Contract
. Для этого вам необходимо установить переменную хранения initialBalance
контракта (см. Тестирование транзакций эфира ).
Во-вторых, вы неправильно вызываете функцию deposit
. Для вызова функции и отправки эфира используется формат contract.functionName.value(valueInWei)(<parameter list>)
.
Вот исправленная версия TestContract
:
contract TestContract {
uint public initialBalance = 1 wei;
function testDeposit() external payable {
Contract c = new Contract();
c.deposit.value(1)();
Assert.equal(c.myBalance(), 1, "#myBalance() should returns 1");
}
}