             userInfo: nil)
 
         // THEN: the observer receives the notification and executes its handler
-        self.waitForExpectationsWithTimeout(2, handler: { (error) in
-            XCTAssertNil(error, "Expectation should not error")
-        })
-    }
-
-    func test_ThatObserverUnregistersForNotificationsOnDeinit_WithValueSenderHandler() {
+        self.waitForExpectationsWithTimeout(timeout, handler: { (error) in
+            XCTAssertNil(error, "Expectation should not error")
+        })
+    }
+
+    func test_ThatObserverUnregistersForNotificationsOnDeinit() {
 
         // GIVEN: a notification and observer
         let fakeValue = TestValue()


        XCTAssertNotNil(observer)

        // WHEN: the notification is posted
        postNotification(notif, value: ())

        // THEN: the observer receives the notification and executes its handler
        self.waitForExpectationsWithTimeout(2, handler: { (error) in
            XCTAssertNil(error, "Expectation should not error")
        })
    }

    func test_Example_NotificationDictionary_WithSender() {

        // GIVEN: a userInfo dictionary
        let userInfo = ["someKey": 100, "anotherKey": NSDate()]

        // GIVEN: a notification
        let notif = Notification<[String: NSObject], JSQNotificationObserverKitTests>(name: "ExampleNotification", sender: self)

        let expect = self.expectationWithDescription("\(__FUNCTION__)")



        XCTAssertNotNil(observer)

        // WHEN: the notification is posted with userInfo
        postNotification(notif, value: userInfo)

        // THEN: the observer receives the notification and executes its handler
        self.waitForExpectationsWithTimeout(timeout, handler: { (error) in
            XCTAssertNil(error, "Expectation should not error")
        })
    }

    func test_ThatNotificationIsPostedAndReceived_WithValueAndSender() {

        // GIVEN: a sender, value, and notification
        let fakeSender = TestSender()
        let fakeValue = TestValue()
        let notification = Notification<TestValue, TestSender>(name: "NotificationName", sender: fakeSender)

        let expectation = self.expectationWithDescription("\(__FUNCTION__)")

        // GIVEN: an observer
        let observer = NotificationObserver(notification: notification, handler: { (value, sender) in
            XCTAssertEqual(value, fakeValue, "Values should be equal")
            XCTAssertEqual(sender, fakeSender, "Senders should be equal")
            expectation.fulfill()
        })

        XCTAssertNotNil(observer)

        // WHEN: the notification is posted
        postNotification(notification, value: fakeValue)

        // THEN: the observer receives the notification and executes its handler
        self.waitForExpectationsWithTimeout(timeout, handler: { (error) in
            XCTAssertNil(error, "Expectation should not error")
        })
    }

    func test_ThatNotificationIsPostedAndReceived_WithValueAndNoSender() {

        // GIVEN: a value, and notification without a sender
        let fakeValue = TestValue()
        let notification = Notification<TestValue, AnyObject>(name: "NotificationName")

        let expectation = self.expectationWithDescription("\(__FUNCTION__)")

        // GIVEN: an observer
        let observer = NotificationObserver(notification: notification, handler: { (value, sender) in
            XCTAssertEqual(value.value, fakeValue.value, "Values should be equal")
            XCTAssertNil(sender, "Sender should be nil")
            expectation.fulfill()
        })
