Hi Gophers, Being new to programming and to Golang i am running into issues while asserting my test case. Looking for help here from the pros -
Here is my function i want to Unit test - func validateK8ResourcesLength(resource prm.Resource) error { name := resource.GetName() namespace := resource.GetNamespace() k8sResourceName := fmt.Sprintf("%s-%s", namespace, name) if len(k8sResourceName) > common.K8sNameLength { return fmt.Errorf("Namespace (%s) and Name (%s) length combined must not be greater than 48 chars", namespace, name) } return nil } Here is test case written - func TestK8testing(t *testing.T) { ctrl := gomock.NewController(t) defer ctrl.Finish() mockContext := prmmock.NewMockStepContext(ctrl) mockResource := prmmock.NewMockResource(ctrl) mockClient := prmmock.NewMockClient(ctrl) // testClient := fake.NewFakeClientWithScheme(runtime.NewScheme()) lables := make(map[string]string) mockClient.EXPECT().GetResource(gomock.Any(), gomock.Any()).Return(mockResource, nil).AnyTimes() mockContext.EXPECT().Resource().Return(mockResource).AnyTimes() mockResource.EXPECT().GetKind().Return("data-movement-v1-nonexist").AnyTimes() mockResource.EXPECT().GetName().Return("test-dm-more-then-forty-eight-charactors-this-should-fail").AnyTimes() mockResource.EXPECT().GetNamespace().Return("ns-more-then-forty-eight-charactors-this-should-fail").AnyTimes() mockResource.EXPECT().GetLabels().Return(lables).AnyTimes() mockResource.EXPECT().GetID().Return(prm.NewResourceID("hcc-dm", "data-movement-v1", "test-dm")).AnyTimes() err := validateK8ResourcesLength(mockResource) assert.Error(t, err) if assert.Error(t, err) { //assert.Contains(t, err, "length combined must not be greater") assert.Equal(t, "Namespace (ns-more-then-forty-eight-charactors-this-should-fail) and Name (test-dm-more-then-forty-eight-charactors-this-should-fail) length combined must not be greater than 48 chars", err) } } Somehow i am getting error while i try to use contain or equal. --- FAIL: TestK8testing (0.00s) /Users/ngupta59/hcc-dm/pkg/dm-agent/cmd/action_validate_dmjob_test.go:296: Error Trace: action_validate_dmjob_test.go:296 Error: Not equal: expected: string("Namespace (ns-more-then-forty-eight-charactors-this-should-fail) and Name (test-dm-more-then-forty-eight-charactors-this-should-fail) length combined must not be greater than 48 chars") actual : *errors.errorString(&errors.errorString{s:"Namespace (ns-more-then-forty-eight-charactors-this-should-fail) and Name (test-dm-more-then-forty-eight-charactors-this-should-fail) length combined must not be greater than 48 chars"}) Test: TestK8testing FAIL FAIL github.optum.com/pep/hcc-dm/pkg/dm-agent/cmd 5.183s FAIL Any help is appreciated in this regards. Thanks in advance. -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/89acd47a-5a5c-432c-9e50-f860415d0601n%40googlegroups.com.