到目前为止,我一直在使用Combine
和PointFree的TestSchedulershttps://github.com/pointfreeco/combine-schedulers来在我的测试中“控制时间”。
我可以发出请求,然后在过程的某些点上轻松断言值,没有任何问题。
例如...
func testFetchContentSuccess() {
let queue = TestSchedulerOf<DispatchQueue>(now: .init(.now()))
let sut = sut(queue: queue.eraseToAnyScheduler())
XCTAssertEqual(sut.content, .notAsked)
sut.fetchContent()
XCTAssertEqual(sut.content, .loading) // this would be impossible without a TestScheulder as the mock endpoint would return immediately.
queue.advance() // this is what I'm looking for from async await
assertSnapshot(matching: sut.content, as: .dump)
}
有没有一种类似于async/await的方法可以实现相同的功能?
fetchContent
实际完成之前拦截吗? - Fogmeister