       keyPath: String,
       values: [T],
       file: StaticString = #file,
-      line: UInt = #line
-      ) {
-      let gettingExpectation = self.expectation(description: "getting \(keyPath) test finished")
+      line: UInt = #line)
+    {
+      var updatingIterator = updating.makeIterator()
+      let _ = updatingIterator.next() // skip an initial value
+      for value in values {
+        object.setValue(value, forKeyPath: keyPath)
 
-      let runLoop = RunLoop.current
-
-      DispatchQueue.global().async {
-        var updatingIterator = updating.makeIterator()
-        let _ = updatingIterator.next() // skip an initial value
-        for value in values {
-          DispatchQueue.main.sync {
-            object.setValue(value, forKeyPath: keyPath)
-          }
-
-          usleep(10_000)
-
-          XCTAssertEqual(updatingIterator.next(), value)
-        }
-
-        gettingExpectation.fulfill()
+        XCTAssertEqual(updatingIterator.next(), value)
       }
-
-      runLoop.run(until: Date().addingTimeInterval(1.0))
-      self.waitForExpectations(timeout: 0.0)
     }
 
     private func testUpdatableProperty<T: AsyncNinjaOptionalAdaptor, Object: NSObject>(

      values: [T],
      file: StaticString = #file,
      line: UInt = #line)
      where T.AsyncNinjaWrapped: Equatable {
      let gettingExpectation = self.expectation(description: "getting \(keyPath) test finished")
      DispatchQueue.global().async {
        var updatingIterator = updating.makeIterator()
        let _ = updatingIterator.next() // skip an initial value
        for value in values {
          DispatchQueue.main.sync {
            object.setValue(value, forKeyPath: keyPath)
          }
          usleep(10_000)
          XCTAssertEqual(updatingIterator.next()?.asyncNinjaOptionalValue, value.asyncNinjaOptionalValue)
        }

        gettingExpectation.fulfill()
      }

      self.waitForExpectations(timeout: 1.0)
    }
}
  
#endif

      keyPath: String,
      values: [T],
      file: StaticString = #file,
      line: UInt = #line) where T.AsyncNinjaWrapped: Equatable
    {
      for value in values {
        updatable.update(value, from: .main)
        let valueWeGot = object.value(forKeyPath: keyPath) as? T
        XCTAssertEqual(valueWeGot?.asyncNinjaOptionalValue, value.asyncNinjaOptionalValue)
      }
    }

    private func testUpdating<T: AsyncNinjaOptionalAdaptor, Object: NSObject>(
