首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >比较醚BigNumber不起作用

比较醚BigNumber不起作用
EN

Ethereum用户
提问于 2022-05-08 03:18:34
回答 1查看 1.4K关注 0票数 2

我正在测试从对契约的函数调用返回的BigNumber的值,它不像预期的那样工作。

我有这个

代码语言:javascript
复制
const { BigNumber } = require('ethers');
...
const totalSupply = await token.totalSupply();
expect(totalSupply).to.equal(BigNumber.from("4"));

此测试在此错误中失败:

代码语言:javascript
复制
AssertionError: expected BigNumber { value: "4" } to equal BigNumber { value: "4" }
      + expected - actual

但从错误信息来看,似乎预期和实际是一样的。为什么这个测试失败了?

EN

回答 1

Ethereum用户

回答已采纳

发布于 2022-05-08 08:12:42

就像这样:

代码语言:javascript
复制
expect(totalSupply.eq(BigNumber.from("4")).to.equal(true);

这是因为to.equal内部使用严格的等式检查===,它只在两个引用指向同一个对象时才返回true。

或者,您也可以使用.deep.equal来检查对象之间的深度相等,但不像确保引用指向同一个实例那样严格:

代码语言:javascript
复制
expect(totalSupply).to.deep.equal(ethers.BigNumber.from("4"))

我希望这能回答你的问题。

票数 5
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/127786

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档