diff --git a/dns/dnsmessage/message.go b/dns/dnsmessage/message.go
index 3826c62..19b260d 100644
--- a/dns/dnsmessage/message.go
+++ b/dns/dnsmessage/message.go
@@ -80,6 +80,7 @@
 	errReserved           = errors.New("segment prefix is reserved")
 	errTooManyPtr         = errors.New("too many pointers (>10)")
 	errInvalidPtr         = errors.New("invalid pointer")
+	errNilResouceBody     = errors.New("nil resource body")
 	errResourceLen        = errors.New("insufficient data for resource body length")
 	errSegTooLong         = errors.New("segment length too long")
 	errZeroSegLen         = errors.New("zero length segment")
@@ -281,7 +282,7 @@
 
 func (r *Resource) pack(msg []byte, compression map[string]int) ([]byte, error) {
 	if r.Body == nil {
-		return msg, &nestedError{"Resource", errors.New("nil resource body")}
+		return msg, errNilResouceBody
 	}
 	oldMsg := msg
 	r.Header.Type = r.Body.realType()
diff --git a/dns/dnsmessage/message_test.go b/dns/dnsmessage/message_test.go
index 2b2c8f1..0f98daa 100644
--- a/dns/dnsmessage/message_test.go
+++ b/dns/dnsmessage/message_test.go
@@ -535,40 +535,57 @@
 }
 
 func TestResourcePack(t *testing.T) {
-	for _, m := range []Message{
+	for _, tt := range []struct {
+		m   Message
+		err error
+	}{
 		{
-			Questions: []Question{
-				{
-					Name:  mustNewName("."),
-					Type:  TypeAAAA,
-					Class: ClassINET,
+			Message{
+				Questions: []Question{
+					{
+						Name:  mustNewName("."),
+						Type:  TypeAAAA,
+						Class: ClassINET,
+					},
 				},
+				Answers: []Resource{{ResourceHeader{}, nil}},
 			},
-			Answers: []Resource{{ResourceHeader{}, nil}},
+			&nestedError{"packing Answer", errNilResouceBody},
 		},
 		{
-			Questions: []Question{
-				{
-					Name:  mustNewName("."),
-					Type:  TypeAAAA,
-					Class: ClassINET,
+			Message{
+				Questions: []Question{
+					{
+						Name:  mustNewName("."),
+						Type:  TypeAAAA,
+						Class: ClassINET,
+					},
+				},
+				Authorities: []Resource{{ResourceHeader{}, (*NSResource)(nil)}},
+			},
+			&nestedError{"packing Authority",
+				&nestedError{"ResourceHeader",
+					&nestedError{"Name", errNonCanonicalName},
 				},
 			},
-			Authorities: []Resource{{ResourceHeader{}, (*NSResource)(nil)}},
 		},
 		{
-			Questions: []Question{
-				{
-					Name:  mustNewName("."),
-					Type:  TypeA,
-					Class: ClassINET,
+			Message{
+				Questions: []Question{
+					{
+						Name:  mustNewName("."),
+						Type:  TypeA,
+						Class: ClassINET,
+					},
 				},
+				Additionals: []Resource{{ResourceHeader{}, nil}},
 			},
-			Additionals: []Resource{{ResourceHeader{}, nil}},
+			&nestedError{"packing Additional", errNilResouceBody},
 		},
 	} {
-		if _, err := m.Pack(); err == nil {
-			t.Errorf("should fail: %v", m)
+		_, err := tt.m.Pack()
+		if !reflect.DeepEqual(err, tt.err) {
+			t.Errorf("got %v for %v; want %v", err, tt.m, tt.err)
 		}
 	}
 }
