Github.com/stretchr/testify: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 10: Line 10:
</syntaxhighlight>
</syntaxhighlight>
=Programming Model=
=Programming Model=
==Assertions==
<syntaxhighlight lang='go'>
<syntaxhighlight lang='go'>
package yours
package yours
Line 46: Line 47:
assert.NotNil(err)
assert.NotNil(err)
assert.Equal(err.Error(), "expected message")
assert.Equal(err.Error(), "expected message")
</syntaxhighlight>
==Mocks==
<syntaxhighlight lang='go'>
...
type MockMyService struct {
mock.Mock
}
func (m * MockMyService) Start() error {
  ...
}
...
</syntaxhighlight>
</syntaxhighlight>

Revision as of 23:03, 30 January 2024

External

Internal

Overview

Installation

go get github.com/stretchr/testify

Programming Model

Assertions

package yours

import (
  "testing"
  tassert "github.com/stretchr/testify/assert"
)

func TestSomething(t *testing.T) {

  assert := tassert.New(t)

  // assert equality
  assert.Equal(123, 123, "they should be equal")

  // assert inequality
  assert.NotEqual(123, 456, "they should not be equal")

  // assert for nil (good for errors)
  assert.Nil(object)

  // assert for not nil (good when you expect something)
  if assert.NotNil(object) {

    // now we know that object isn't nil, we are safe to make
    // further assertions without causing any errors
    assert.Equal("Something", object.Value)
  }
}

To check that an error has the expected message:

err := ...
assert.NotNil(err)
assert.Equal(err.Error(), "expected message")

Mocks

...
type MockMyService struct {
	mock.Mock
}

func (m * MockMyService) Start() error {
  ...
}

...