#javascript #arrays #solidity #truffle
#javascript #массивы #солидность #трюфель
Вопрос:
it("should not allow non-owner to delete people", async function(){
let instance = await People.deployed();
await instance.createPerson("Lisa", 35, 160, {from: accounts[2], value: web3.utils.toWei("1", "ether")});
await truffleAssert.fails(instance.deletePerson(accounts[2], {from: accounts[2]}), truffleAssert.ErrorType.REVERT);
});
it("should allow the owner to delete people", async function(){
let instance = await People.new();
await instance.createPerson("Lisa", 35, 160, {from: accounts[2], value: web3.utils.toWei("1", "ether")});
await truffleAssert.passes(instance.deletePerson(accounts[1], {from: accounts[0]}));
});
Используя набор для тестирования truffle, я получаю этот результат:
Contract: People
√ should't create a person with age over 150 years (134ms)
√ shouldn't create a person without payment (143ms)
√ should set seniour status correctly (333ms)
√ should set age correctly (65ms)
1) should not allow non-owner to delete people
> No events were emitted
2) should allow the owner to delete people
> No events were emitted
4 passing (898ms)
2 failing
1) Contract: People
should not allow non-owner to delete people:
TypeError: Cannot read property '2' of undefined
at Context.<anonymous> (testpeopletest.js:31:65)
at process._tickCallback (internal/process/next_tick.js:68:7)
2) Contract: People
should allow the owner to delete people:
TypeError: Cannot read property '2' of undefined
at Context.<anonymous> (testpeopletest.js:36:64)
at process._tickCallback (internal/process/next_tick.js:68:7)
Последние два теста должны были работать так же, как и для других студентов. Однако у меня такая же ошибка типа.
Я не понимаю, почему он не может распознать синтаксис массива.
Комментарии:
1. Похоже, что
accounts
не определено (что имеет смысл — я нигде не вижу объявления в вашем коде …) Возможно, вы имели в видуweb3.eth.accounts
или что-то в этом роде?2. Можете ли вы показать свой полный тестовый файл?
3. Я исправил проблему, хотя и не знаю точно, как.