我有以下結構,每個字段都有吸氣劑```type Profile struct { id dom.ID screeName ScreenName dob DOB gender Gender bio Bio avatar Avatar company Company website Website address address.Address accounts []dom.ID}```每個字段的類型只是字符串的包裝器,用于進行一些驗證或其他操作。吸氣劑都是相同的格式,```// ScreenName returns the ScreenName for the profilefunc (p *Profile) ScreenName() ScreenName { return p.screeName}// DOB returns the dob for the profilefunc (p *Profile) DOB() DOB { return p.dob}```構造函數在下面,如果沒有提供設置結構字段的選項,則會為其提供隨機默認值。```type Option func(prof *Profile)func New(opts ...Option) *Profile { p := newWithAllDefaults() for _, opt := range opts { opt(p) } return p}```所有可以傳遞給構造函數的選項類型都經過測試,并在 Profile 結構上設置非導出字段?,F在我遇到的問題是測試。我現在只使用 go 大概 3 個月,所以我確信我在這里遺漏了一些東西,但是在我的測試中使用 reflect.deepEqual() 時,我總是得到意想不到的結果。使用簡單的標量值,它可以按預期工作,但我不知道為什么我期望通過的測試失敗了,而我期望失敗的測試卻通過了。
1 回答

慕的地8271018
TA貢獻1796條經驗 獲得超4個贊
i
將基于零,因此在您的第 4 次測試中,您將進入 switch 中的第 3 條語句并比較您可以從輸出中看到的不同出生日期。第三個 case 語句也打印出完整的結構。
- 1 回答
- 0 關注
- 138 瀏覽
添加回答
舉報
0/150
提交
取消