Проблемы со значениями UINT при тестировании с mocha/chai

В настоящее время я тестирую некоторые смарт-контракты с трюфелем (мокко/чай/чай-как-обещано) и имею следующую проблему:

У меня есть геттер, и этот геттер выдает значение UINT, а затем, когда я пытаюсь проверить значение с помощью instance.getMemberCount().should.eventually.equal(4), результат: expected { Object (s, e, ...) } to equal 4.

Интересным фактом является то, что когда я пытаюсь сравнить значения напрямую с '==', проблем нет.. (например assert.equal(instance.getMemberCount() == 4):)

Есть ли у Mocha/Chai проблемы с преобразованием значений uint?

getMemberCount().toNumber() ? может быть
@ВиталийШвецов - в JavaScript нет toNumber() или я ошибаюсь? Я пробовал с Number(), parseInt() - но результат NaN, потому что у нас есть "object Promise", и я все еще застрял..
@val3ri Web3 имеет BigNumberобъект с расширением toNumber. ethereumbuilders.gitbooks.io/guide/content/en/… см. «web3.toBigNumber»

Ответы (1)

Вы можете использовать .valueOf(), чтобы получить возвращаемое значение из функции получения.

Я использовал это в одном из тестовых случаев, которые я написал когда-то назад.

Вы можете взглянуть на это для справки.

Надеюсь это поможет.

Спасибо за ссылку на репозиторий github, я буду искать ответы там! С .valueOf() результат: [object Promise]. И после печати результат: { [String: '4'] s: 1, e: 0, c: [ 4 ] }. JavaScript каким-то образом преобразует этот объект, и сравнение с "==" работает.