             expectation.fulfill()
         }
         waitForExpectationsWithTimeout(1.0, handler: nil)
-        guard let testResult = receivedResult else {
-            fail("Should have received a result")
-            return
-        }
-        switch testResult {
-        case .Success(let response):
-            expect(response.name).to(equal("test name"))
-            expect(response.desc).to(equal("test desc"))
-        default:
-            fail("Should be a successful response")
+        testToPerform(receivedResult)
+    }
+    
+    func testItIsPossibleToMakeAGetRequest() {
+        performGetRequestTest(passingTest: { (request) -> Bool in
+            return request.URL! == testURL && request.HTTPMethod == "GET"
+            }) { receivedResult in
+                guard let testResult = receivedResult else {
+                    fail("Should have received a result")
+                    return
+                }
+                switch testResult {
+                case .Success(let response):
+                    expect(response.name).to(equal("test name"))
+                    expect(response.desc).to(equal("test desc"))
+                default:
+                    fail("Should be a successful response")
+                }
         }
     }
 

        }
    }


}


    func stubRequest(statusCode statusCode: Int32 = 200, passingTest test: OHHTTPStubsTestBlock) {
        OHHTTPStubs.stubRequestsPassingTest(test) { (request) -> OHHTTPStubsResponse in
            return OHHTTPStubsResponse(data: testString.dataUsingEncoding(NSUTF8StringEncoding)!, statusCode: statusCode, headers: nil)
        }
    }

    typealias TestBlock = Result<TestResponse>? -> Void

    func performGetRequestTest(request: Request = basicRequest, statusCode: Int32 = 200, passingTest requestTest: OHHTTPStubsTestBlock?, testBlock testToPerform: TestBlock) {
        if let requestTest = requestTest {
            stubRequest(statusCode: statusCode, passingTest: requestTest)
        }
        let expectation = expectationWithDescription("get request")
        var receivedResult: Result<TestResponse>?
        Fetch.get(basicRequest) { (result: Result<TestResponse>) in
