我在運(yùn)行單元測試以檢查某個(gè)decimal值是否符合我的預(yù)期時(shí)遇到問題。這是我試過的: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是一個(gè)decimal. 然而,比較測試用例中的兩者與指數(shù)等略有不同。我如何正確斷言這些值與 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貢獻(xiàn)1770條經(jīng)驗(yàn) 獲得超3個(gè)贊
您可以使用decimal.Equal
以便可以使用庫比較值以返回 abool
然后只測試該結(jié)果是否為true
.
像這樣:
require.Equal(t, decimal.NewFromFloat(6000.00).Equal(sum_amount), true)
另外,您可以檢查結(jié)果是否正在true
使用,而不是比較兩個(gè)值是否相等require.True
這是最終結(jié)果:
require.True(t, decimal.NewFromFloat(6000.00).Equal(sum_amount))
- 1 回答
- 0 關(guān)注
- 94 瀏覽
添加回答
舉報(bào)
0/150
提交
取消