         super.tearDown()
     }
     
-    func wait(until: NSTimeInterval = 3, filename: String = __FILE__, functionName: String = __FUNCTION__, line: Int = __LINE__)
+    func perform(after: NSTimeInterval = 0.01, closure: Void -> Void)
     {
-        self.waitForExpectationsWithTimeout(until) { error in
+        self.timeInterval = after
+        
+        if self.isAsync {
+            dispatch_after(dispatch_time(DISPATCH_TIME_NOW, Int64(1_000_000_000 * self.timeInterval)), dispatch_get_main_queue(), closure)
+        }
+        else {
+            closure()
+        }
+    }
+    
+    func wait(filename: String = __FILE__, functionName: String = __FUNCTION__, line: Int = __LINE__)
+    {
+        self.waitForExpectationsWithTimeout(self.timeInterval + 1) { error in
             if let error = error {
                 println()
                 println("*** Wait Error ***")


class _TestCase: XCTestCase
{
    override func setUp()
    {
        super.setUp()

            }
        }
    }
}