У меня проблема с тестом, при запуске я получаю ошибку - PullRequest
0 голосов
/ 06 ноября 2018

У меня проблема с тестом, при запуске я получаю эту ошибку:

Контракт: Electionn √ инициализируется с двумя кандидатами 1) инициализирует кандидатов с правильными значениями

Событий не было

1 прохождение (89мс) 1 сбой

1) Контракт: Electionn он инициализирует кандидатов с правильными значениями: ReferenceError: Выборы не определены в контексте. (тест \ election.js: 16: 5) в C: \ Users \ HP \ AppData \ Roaming \ npm \ node_modules \ truffle \ build \ webpack: \ packages \ truffle-core \ lib \ testing \ testrunner.js: 135: 1 в C: \ Users \ HP \ AppData \ Roaming \ npm \ node_modules \ truffle \ build \ webpack: \ ~ \ web3 \ lib \ web3 \ property.js: 119: 1 в C: \ Users \ HP \ AppData \ Roaming \ npm \ node_modules \ truffle \ build \ webpack: \ ~ \ web3 \ lib \ web3 \ requestmanager.js: 89: 1 в C: \ Users \ HP \ AppData \ Roaming \ npm \ node_modules \ truffle \ build \ webpack: \ packages \ truffle-provider \ wrapper.js: 134: 1 в XMLHttpRequest.request.onreadystatechange (C: \ Users \ HP \ AppData \ Roaming \ npm \ node_modules \ truffle \ build \ webpack: \ ~ \ web3 \ lib \ web3 \ httpprovider.js: 128: 1) в XMLHttpRequestEventTarget.dispatchEvent (C: \ Users \ HP \ AppData \ Roaming \ npm \ node_modules \ truffle \ build \ webpack: \ ~ \ xhr2 \ lib \ xhr2.js: 64: 1) в XMLHttpRequest._setReadyState (C: \ Users \ HP \ AppData \ Roaming \ npm \ node_modules \ truffle \ build \ webpack: \ ~ \ xhr2 \ lib \ xhr2.js: 354: 1) в XMLHttpRequest._onHttpResponseEnd (C: \ Users \ HP \ AppData \ Roaming \ npm \ node_modules \ truffle \ build \ webpack: \ ~ \ xhr2 \ lib \ xhr2.js: 509: 1) на входящем сообщении. (C: \ Users \ HP \ AppData \ Roaming \ НПМ \ node_modules \ трюфель \ билда \ WebPack: \ ~ \ xhr2 \ Lib \ xhr2.js: 469: 1) в endReadableNT (_stream_readable.js: 1064: 12) в _combinedTickCallback (внутренняя / process / next_tick.js: 138: 11) at process._tickCallback (internal / process / next_tick.js: 180: 9)

и мой тестовый файл:

var Electionn = artifacts.require("./Electionn.sol");

contract("Electionn", function(accounts) {
  var electionInstance;

  it("initializes with two candidates", function() {
    return Electionn.deployed().then(function(instance) {
      return instance.candidatesCount();
    }).then(function(count) {
      assert.equal(count, 2);
    });
  });

  it("it initializes the candidates with the correct values", function() {
    return Election.deployed().then(function(instance) {
      electionInstance = instance;
      return electionInstance.candidates(1);
    }).then(function(candidate) {
      assert.equal(candidate[0], 1, "contains the correct id");
      assert.equal(candidate[1], "Candidate 1", "contains the correct name");
      assert.equal(candidate[2], 0, "contains the correct votes count");
      return electionInstance.candidates(2);
    }).then(function(candidate) {
      assert.equal(candidate[0], 2, "contains the correct id");
      assert.equal(candidate[1], "Candidate 2", "contains the correct name");
      assert.equal(candidate[2], 0, "contains the correct votes count");
    });
 });
});

Я не знаю, как ее решить, заранее спасибо.

1 Ответ

0 голосов
/ 08 ноября 2018

Вам не нужно ссылаться на развернутую версию контракта для целей тестирования ...

Попробуйте инициализировать экземпляр контракта перед каждым тестом и использовать глобальную переменную для ссылки на него.

var electionnInstance;

beforeEach(function() {
    return Electionn.new()
    .then(function(instance) {
        electionnInstance = instance;
    });
});

it("..."
...