saya menggunakan tes google dan google mock. Ada objek tiruan di mana saya mengharapkan pemanggilan metode OnConnectionError()
yang memberi tahu objek absl::Notification done
sebanyak 3 kali.
absl::Notification done;
EXPECT_CALL(*client, OnConnectionError(::testing::_)).Times(3)
.WillRepeatedly(Notify(&done));
bool result = client->ConnectToServer("localhost", 5000, 2);
done.WaitForNotificationWithTimeout(absl::Duration(absl::Seconds(30)));
Metode client->ConnectToServer
memiliki perulangan yang menghasilkan panggilan berulang OnConnectionError
, yang sepenuhnya baik-baik saja dan merupakan perilaku yang diinginkan.
Di Windows, pengujian unit berjalan dengan baik. Ketika jenkins menjalankannya di ubuntu, ia membatalkan seluruh pengujian yang dijalankan (tidak hanya gagal dalam satu pengujian!!) dengan output berikut.
[notification.cc : 32] RAW: Notify() method called more than once for Notification object 0x7ffffde87320
Apakah tidak diperbolehkan memanggil objek Notifikasi berkali-kali? Mengapa tes berhasil di Windows dan dibatalkan di ubuntu?
terima kasih banyak atas dukungan Anda!