                 scheduler.scheduleAt(10) { action.inputs.onNext("a") }
                 scheduler.scheduleAt(20) { action.inputs.onNext("b") }
             }
+            
             afterEach {
                 action = nil
             }
+            
             it("receives generated inputs") {
                 scheduler.start()
-                XCTAssertEqual(inputs.events, Recorded.events([
-                  .next(10, "a"),
-                  .next(20, "b")
-                  ])
-                )
+                expect(inputs.events).to(match(TestEvents.inputs))
             }
             it("emits nothing on `elements`") {
                 let elements = scheduler.createObserver(Never.self)
                 action.elements.bind(to: elements).disposed(by: disposeBag)
                 scheduler.start()
-                XCTAssertEqual(elements.events.count, 0)
+                expect(elements.events.count).to(match(0))
             }
             it("emits on `completions` when completed") {
                 let completions = scheduler.createObserver(Void.self)
                 action.completions.bind(to: completions).disposed(by: disposeBag)
                 scheduler.start()
-                XCTAssert(completions.events.contains { $0.time == 10})
-                XCTAssert(completions.events.contains { $0.time == 20})
+                expect(completions.events.contains { $0.time == 10}).to(beTrue())
+                expect(completions.events.contains { $0.time == 20}).to(beTrue())
             }
         }
 

        describe("completable action") {
            var inputs: TestableObserver<String>!
            var action: CompletableAction<String>!
            beforeEach {
                inputs = scheduler.createObserver(String.self)
                action = CompletableAction { input -> Completable in

                }
                
                it("element fails with underlyingError") {
                    expect(element.events).to(match(with: TestEvents.elementUnderlyingErrors))
                }
                
                it("executes twice") {
