Проверьте, была ли вызвана функция - PullRequest
1 голос
/ 20 марта 2019

Учитывая эту структуру и функцию:

type ExampleModule struct {
  DB                   *database.Store
  AnotherModule        AnotherModuleInterface
}

func(m *ExampleModule) A (i int, id int[]) error{
  err := m.AnotherModuke.SomeFunc(i, id)
}

Как выполнить модульный тест, чтобы убедиться, что SomeFunc вызывается при запуске функции A?

1 Ответ

2 голосов
/ 20 марта 2019
  1. вы можете макетировать реализацию интерфейса, как
globalIndex
type Mock struct{}

func (m Mock) SomeFunc(){
    globalIndex++
}

func testA(t *testing.T) {
    a := ExampleModule{
        AnotherModule: Mock{},
    }
    a.A()
    assert(globalIndex == 1)
}

попробуйте testify.AssertExpectations может помочь вам

https://github.com/stretchr/testify#mock-package

...