我正在测试从对契约的函数调用返回的BigNumber的值,它不像预期的那样工作。
我有这个
const { BigNumber } = require('ethers');
...
const totalSupply = await token.totalSupply();
expect(totalSupply).to.equal(BigNumber.from("4"));此测试在此错误中失败:
AssertionError: expected BigNumber { value: "4" } to equal BigNumber { value: "4" }
+ expected - actual但从错误信息来看,似乎预期和实际是一样的。为什么这个测试失败了?
发布于 2022-05-08 08:12:42
就像这样:
expect(totalSupply.eq(BigNumber.from("4")).to.equal(true);这是因为to.equal内部使用严格的等式检查===,它只在两个引用指向同一个对象时才返回true。
或者,您也可以使用.deep.equal来检查对象之间的深度相等,但不像确保引用指向同一个实例那样严格:
expect(totalSupply).to.deep.equal(ethers.BigNumber.from("4"))我希望这能回答你的问题。
https://ethereum.stackexchange.com/questions/127786
复制相似问题