فهرست منبع

Merge pull request #2457 from onevcat/fix/flaky-image-provider-tests

Fix flaky image provider retrieve tests
Wei Wang 1 ماه پیش
والد
کامیت
eaefae03db
1فایلهای تغییر یافته به همراه6 افزوده شده و 16 حذف شده
  1. 6 16
      Tests/KingfisherTests/KingfisherManagerTests.swift

+ 6 - 16
Tests/KingfisherTests/KingfisherManagerTests.swift

@@ -950,26 +950,21 @@ class KingfisherManagerTests: XCTestCase {
 #endif
 #endif
     
     
     func testRetrieveWithImageProvider() {
     func testRetrieveWithImageProvider() {
+        let exp = expectation(description: #function)
         let provider = SimpleImageDataProvider(cacheKey: "key") { .success(testImageData) }
         let provider = SimpleImageDataProvider(cacheKey: "key") { .success(testImageData) }
-        let called = ActorBox(false)
         manager.defaultOptions = .empty
         manager.defaultOptions = .empty
         _ = manager.retrieveImage(with: .provider(provider), options: [.processingQueue(.mainCurrentOrAsync)]) {
         _ = manager.retrieveImage(with: .provider(provider), options: [.processingQueue(.mainCurrentOrAsync)]) {
             result in
             result in
             XCTAssertNotNil(result.value)
             XCTAssertNotNil(result.value)
             XCTAssertTrue(result.value!.image.renderEqual(to: testImage))
             XCTAssertTrue(result.value!.image.renderEqual(to: testImage))
-            Task {
-                await called.setValue(true)
-            }
-        }
-        Task {
-            let result = await called.value
-            XCTAssertTrue(result)
+            exp.fulfill()
         }
         }
+        waitForExpectations(timeout: 3, handler: nil)
     }
     }
     
     
     func testRetrieveWithImageProviderFail() {
     func testRetrieveWithImageProviderFail() {
+        let exp = expectation(description: #function)
         let provider = SimpleImageDataProvider(cacheKey: "key") { .failure(SimpleImageDataProvider.E()) }
         let provider = SimpleImageDataProvider(cacheKey: "key") { .failure(SimpleImageDataProvider.E()) }
-        let called = ActorBox(false)
         _ = manager.retrieveImage(with: .provider(provider)) { result in
         _ = manager.retrieveImage(with: .provider(provider)) { result in
             XCTAssertNotNil(result.error)
             XCTAssertNotNil(result.error)
             if case .imageSettingError(reason: .dataProviderError(_, let error)) = result.error! {
             if case .imageSettingError(reason: .dataProviderError(_, let error)) = result.error! {
@@ -977,14 +972,9 @@ class KingfisherManagerTests: XCTestCase {
             } else {
             } else {
                 XCTFail()
                 XCTFail()
             }
             }
-            Task {
-                await called.setValue(true)
-            }
-        }
-        Task {
-            let result = await called.value
-            XCTAssertTrue(result)
+            exp.fulfill()
         }
         }
+        waitForExpectations(timeout: 3, handler: nil)
     }
     }
 
 
     func testContextRemovingAlternativeSource() {
     func testContextRemovingAlternativeSource() {