Как убедиться, что все функции асинхронного запускаются до выполнения отложенного - PullRequest
0 голосов
/ 12 декабря 2018

У меня есть функция, скажем

Myfunction() {  
      x.RunAsync() //Async Function call 
}

Я должен написать контрольный пример для Myfunction().Я использую для этого идиотскую игру.И издевались x.

Test_MyFunction() {
   mockCtrl := gomock.NewController(t)
   defer mockCtrl.Finish()
   //EXPECT() call to stub RunAsync()
}

Проблема сейчас в том, что мой тест успешно выполнен, но как-то в конце он паникует, говоря, что вызов mockX.RunAsync() отсутствует.Я думаю, что это потому, что отсрочка выполняется до того, как мой RunAsync был заглушен.Как мне убедиться, что все функции Async выполняются до выполнения отложенного выполнения.

1 Ответ

0 голосов
/ 13 декабря 2018

Если тестовый двойник используется в качестве заглушки, вам следует вызвать .AnyTimes() для него.Таким образом, Гомоку не будет важно, закончилась ли процедура go или нет.

Если, однако, вы хотите сделать на нем утверждения (и, следовательно, это насмешка, а не заглушка), то вам нужно убедиться, чтоперед запуском теста процедура выполнения выполнена.

...