Benim sınama dosyasında, beklenen hata ile algılanan gerçek bir hata karşılaştırmak çalışıyorum. Ancak, bu karşılaştırma yanlış olarak değerlendirir ve neden emin değilim. Bu, iki aynı hata oluşturduğunda ve bunları karşılaştırabildiğimde bile olur.Hataların karşılaştırılması <a1> Hata</ a1>
Kod pasajı:
func TestCompareErrors(t *testing.T) {
if fmt.Errorf("Test Error") != fmt.Errorf("Test Error") {
t.Errorf("Test failed")
}
}
Bu aynı hata mesajı var ne iki farklı değerler karşılaştırdığınız
Tamam, ama ne hata mesajı dinamik içeriği (örneğin sahipse "beklenmeyen girdi: [şey]" ya da olduğu bu durumda kötü bir uygulama – edwardmp
@edwardmp?: evet, hataya dinamik bir mesaj vermek genellikle kötü bir uygulamadır, değerleri karşılaştırmak için yeteneği kaybedersiniz. ['net.OptError'] gibi teknikleri kullanabilirsiniz (https://golang.org/pkg/net/#OpError) (hataya fazladan bilgi eklediğiniz ['net.Error'] (https://golang.org/pkg/net/#Error) ve' error'() hatalarını karşılar ve hata türünü bir tip iddiası ve yöntemleri – JimB
Doğru, bu iyi bir çözümdür. – edwardmp