![](/img/trans.png)
[英]How to assert a partial match with stretchr/testify/mock AssertCalled?
[英]How to test equality of a decimal with stretchr/testify?
我無法運行單元測試來檢查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
。 然而,在測試用例中比較兩者的結果與指數等略有不同。
我如何正確斷言這些值與stretchr/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
}
您可以使用decimal.Equal
以便可以使用庫比較值以返回bool
,然后僅測試該結果是否為true
。
像這樣:
require.Equal(t, decimal.NewFromFloat(6000.00).Equal(sum_amount), true)
此外,您可以使用require.True
檢查結果是否為true
,而不是比較兩個值是否相等
這是最終結果:
require.True(t, decimal.NewFromFloat(6000.00).Equal(sum_amount))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.