为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 stretr/testify 测试小数是否相等?

如何使用 stretr/testify 测试小数是否相等?

Go
aluckdog 2023-01-03 15:33:54
我在运行单元测试以检查某个decimal值是否符合我的预期时遇到问题。这是我试过的:func Test_example(t *testing.T) {    t.Run("test if two decimals are equal", func(t *testing.T) {        sum_amount := decimal.NewFromFloat(1000.00)                          .Add(decimal.NewFromFloat(5000.00))            require.Equal(t, decimal.NewFromFloat32(6000.00), sum_amount))    })}如您所见,sum_amount是一个decimal. 然而,比较测试用例中的两者与指数等略有不同。我如何正确断言这些值与 stretr/testify 相等?例如这里的差异:Diff:--- Expected+++ Actual@@ -4,6 +4,6 @@    abs: (big.nat) (len=1) {-   (big.Word) 6+   (big.Word) 6000      }    }),- exp: (int32) 3+ exp: (int32) 0  }
查看完整描述

1 回答

?
德玛西亚99

TA贡献1770条经验 获得超3个赞

您可以使用decimal.Equal以便可以使用库比较值以返回 abool然后只测试该结果是否为true.

像这样:

require.Equal(t, decimal.NewFromFloat(6000.00).Equal(sum_amount), true)

另外,您可以检查结果是否正在true使用,而不是比较两个值是否相等require.True

这是最终结果:

require.True(t, decimal.NewFromFloat(6000.00).Equal(sum_amount))


查看完整回答
反对 回复 2023-01-03
  • 1 回答
  • 0 关注
  • 59 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信