     }
 }
 
-class DatabaseOperationTests: CloudKitOperationTests<TestDatabaseOperation> {
+class DatabaseOperationTests: CloudKitOperationTests {
+
+    var target: TestDatabaseOperation!
+    var operation: CloudKitOperation<TestDatabaseOperation>!
+
+    override func setUp() {
+        super.setUp()
+        target = TestDatabaseOperation()
+        operation = CloudKitOperation(operation: target, reachability: reachability)
+    }
 
     func test__get_database() {
         let db = "I'm a test database!"


// MARK: - Test Cases

class CloudKitOperationTests<Target where Target: NSOperation, Target: CKOperationType>: OperationTests {

    var target: Target!
    var reachability: TestableSystemReachability!
    var operation: CloudKitOperation<Target>!

    override func setUp() {
        super.setUp()
        reachability = TestableSystemReachability()
        target = Target()
        operation = CloudKitOperation(operation: target, reachability: reachability)
    }
}

class CloudOperationTests: CloudKitOperationTests<TestCloudOperation> {

    func test__get_countainer() {
        let container = "I'm a test container!"

    }
}

class FetchRecordsOperationTests: CloudKitOperationTests {

    var target: TestFetchRecordsOperation!
    var operation: CloudKitOperation<TestFetchRecordsOperation>!

    override func setUp() {
        super.setUp()
        target = TestFetchRecordsOperation()
        operation = CloudKitOperation(operation: target, reachability: reachability)
    }

    func test__get_record_ids() {
        let IDs = [ "an-id", "another-id" ]
