         let items = dbHelper.fetchEntity("TestItem")
         XCTAssertNotNil(items)
         XCTAssertTrue(items!.count != 0)
+    }
+    
+    func testFetchOneEntityInBack() {
+        insertOneItem()
+        
+        let expectation = expectationWithDescription("Test Fetch One Entity In Back")
+        
+        dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) {
+            let item: TestItem? = self.dbHelper.fetchOneEntity(self.entityName)
+            XCTAssertNotNil(item)
+            XCTAssertNotEqual(NSThread.currentThread(), NSThread.mainThread())
+            expectation.fulfill()
+        }
+        
+        waitForExpectationsWithTimeout(2) { (error) in
+            if let error = error {
+                print("wait error: \(error.localizedDescription)")
+            }
+        }
     }
     
     func testFetchOneEntityConcurrent() {

        dbHelper.removeAllEntity("TestItem")
    }
    
    func testRemoveAllEntityConcurrent() {
        for _ in 0..<3 {
            insertOneItem()

        
        let count2 = dbHelper.countForEntity("TestItem")
        XCTAssertEqual(count2, 3)
    }
    
    func testFetchEntityInBack() {
        insertOneItem()
        
        let expectation = expectationWithDescription("Test Fetch Entity In Back")
        
        dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) {
            let items: [TestItem]? = self.dbHelper.fetchEntity(self.entityName)
            XCTAssertNotNil(items)
            XCTAssertTrue(items!.count != 0)
            
            expectation.fulfill()
        }
        
        waitForExpectationsWithTimeout(2) { (error) in
            if let error = error {
                print("wait error: \(error.localizedDescription)")
            }
        }
    }
    
    func testFetchEntityConcurrent() {
