Hi, 

Well, you are using a 3th party lib for assertion, and you haven't told 
which one, so it's hard to reason about it. one idea is to check the 
library's docs to ensure it's ding the comparison as you expect.
2 things would help to get some insight on your problem are:
 - format the code, it's hard to read it. If possible try to reproduce on 
https://play.golang.org/ and post the link here.
 - show which libs you're using. Which is the library used for assertion? 
The `errors` package is from the standard library or a 3td party one?

best,

On Friday, 29 January 2021 at 18:53:01 UTC+1 nishant...@gmail.com wrote:

> 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/b76cb1db-6f78-40c2-aab2-057296528fc2n%40googlegroups.com.

Reply via email to