最初に変なタイトルで申し訳ありませんが、話したいことの名前を付ける方法がわからないので、「時限アサート」と呼びました。
基本的に、特定のクラス機能をテストしたいが、そのクラス メソッドは非同期であるとします (たとえば、instance.Start() はすぐに戻りますが、プライベート メンバー instance.Mode は 2 秒後に enum Started に変更されます)。だから何かのようになります:
MyObject instance;
instance.start();
// invented function, first part is the normal assert, 3000 is delay in milliseconds
timed_assert(instance.GetMode()==MyObject::Mode::Started, 3000);
良い考えですか?ブロッキング関数として timed_assert を実装するのは些細なこと (スリープ + 通常のアサート) であり、ノンブロッキングにすることは私のスキルレベルを超えていますが、確実に実行できる場合はオプションとして自由に検討してください。