瀏覽代碼

Attempt to make tests more reliable.

Jon Shier 7 年之前
父節點
當前提交
2d0414d3cf
共有 3 個文件被更改,包括 17 次插入12 次删除
  1. 1 1
      Source/Session.swift
  2. 1 5
      Tests/RequestTests.swift
  3. 15 6
      Tests/SessionTests.swift

+ 1 - 1
Source/Session.swift

@@ -484,8 +484,8 @@ extension Session: RequestDelegate {
                 return
             }
 
-            request.didCancel()
             task.cancel()
+            request.didCancel()
         }
     }
 

+ 1 - 5
Tests/RequestTests.swift

@@ -272,7 +272,6 @@ class RequestDescriptionTestCase: BaseTestCase {
         let urlString = "https://httpbin.org/get"
         let manager = Session(startRequestsImmediately: false)
         let request = manager.request(urlString)
-        let initialRequestDescription = request.description
 
         let expectation = self.expectation(description: "Request description should update: \(urlString)")
 
@@ -287,11 +286,8 @@ class RequestDescriptionTestCase: BaseTestCase {
 
         waitForExpectations(timeout: timeout, handler: nil)
 
-        let finalRequestDescription = request.description
-
         // Then
-        XCTAssertEqual(initialRequestDescription, "No request created yet.")
-        XCTAssertEqual(finalRequestDescription, "GET https://httpbin.org/get (\(response?.statusCode ?? -1))")
+        XCTAssertEqual(request.description, "GET https://httpbin.org/get (\(response?.statusCode ?? -1))")
     }
 }
 

+ 15 - 6
Tests/SessionTests.swift

@@ -327,8 +327,11 @@ class SessionTestCase: BaseTestCase {
         // Then
         XCTAssertNotNil(response, "response should not be nil")
         XCTAssertTrue(request.isCancelled)
-        XCTAssertNil(request.task)
-        guard let error = request.error?.asAFError, case .explicitlyCancelled = error else { XCTFail(); return }
+        XCTAssertTrue((request.task == nil) || (request.task?.state == .canceling))
+        guard let error = request.error?.asAFError, case .explicitlyCancelled = error else {
+            XCTFail("Request should have an .explicitlyCancelled error.")
+            return
+        }
     }
 
     func testSetStartRequestsImmediatelyToFalseAndResumeThenCancelRequestHasCorrectOutput() {
@@ -357,8 +360,11 @@ class SessionTestCase: BaseTestCase {
         // Then
         XCTAssertNotNil(response, "response should not be nil")
         XCTAssertTrue(request.isCancelled)
-        XCTAssertNil(request.task)
-        guard let error = request.error?.asAFError, case .explicitlyCancelled = error else { XCTFail(); return }
+        XCTAssertTrue((request.task == nil) || (request.task?.state == .canceling))
+        guard let error = request.error?.asAFError, case .explicitlyCancelled = error else {
+            XCTFail("Request should have an .explicitlyCancelled error.")
+            return
+        }
     }
 
     func testSetStartRequestsImmediatelyToFalseAndCancelThenResumeRequestDoesntCreateTaskAndStaysCancelled() {
@@ -387,8 +393,11 @@ class SessionTestCase: BaseTestCase {
         // Then
         XCTAssertNotNil(response, "response should not be nil")
         XCTAssertTrue(request.isCancelled)
-        XCTAssertNil(request.task)
-        guard let error = request.error?.asAFError, case .explicitlyCancelled = error else { XCTFail(); return }
+        XCTAssertTrue((request.task == nil) || (request.task?.state == .canceling))
+        guard let error = request.error?.asAFError, case .explicitlyCancelled = error else {
+            XCTFail("Request should have an .explicitlyCancelled error.")
+            return
+        }
     }
 
     // MARK: Tests - Deinitialization