Avatar
omochimetaru 2/19/2022 4:54 AM
その場合は、「viewModel.fetchRepository の処理が動き始めるのを待機する」ロジックを明確に書くのが良いと思います。
4:55 AM
おそらく、 viewModel.fetchRepository の中で、 StubAPIClient.fetchRepository を呼ぶようになってますよね、なので、
4:55 AM
StubAPIClient に、 fetchRepository が呼ばれたら返ってくる await property を生やすのが良いんじゃないでしょうか
4:56 AM
つまりテストコードとしては
4:56 AM
XCTAssertFalse(viewModel.showProgress) async let result: () = viewModel.fetchRepository() await stubAPIClient.willFetchRepository XCTAssertTrue(viewModel.showProgress) stubApiClient.continue() await result XCTAssertFalse(viewModel.showProgress)
4:57 AM
こう書けるようにする。