RxBDD 1.0.0

RxBDD 1.0.0

Geektree0101 维护。



 
依赖
RxSwift~> 4.0
RxCocoa~> 4.0
RxTest~> 4.0
 

RxBDD 1.0.0

  • Geektree0101

CI Status Version License Platform

示例

基本用法

RxBDD.init(inputObservable: #INPUT_OBSERVABLETYPE, // Relay or Subject
            outputType: #EXPECTED_OUTPUT_TYPE)
      .given(#INPUT_EVENTS) // [Recorded<Event<#INPUT_OBSERVABLETYPE_ELEMENT>>]
      .when(#OUTPUT_OBSERVABLE) // Observable<#EXPECTED_OUTPUT_TYPE>
      .then({ outputs in
           XCTAssertEqual(outputs,
                          #EXPECTED_EVENTS) // [Recorded<Event<#EXPECTED_OUTPUT_TYPE>>]
      })

共享给定的事件

let shared = RxBDD.init(inputObservable: #INPUT_OBSERVABLETYPE, // Relay or Subject
            outputType: #EXPECTED_OUTPUT_TYPE)
      .given(#INPUT_EVENTS) // [Recorded<Event<#INPUT_OBSERVABLETYPE_ELEMENT>>]
      .share()
      
shared.when(#OUTPUT_OBSERVABLE) // Observable<#EXPECTED_OUTPUT_TYPE>
      .then({ outputs in
           XCTAssertEqual(outputs,
                          #EXPECTED_EVENTS) // [Recorded<Event<#EXPECTED_OUTPUT_TYPE>>]
      })
      
shared.when(#OUTPUT_OBSERVABLE) // Observable<#EXPECTED_OUTPUT_TYPE>
      .then({ outputs in
           XCTAssertEqual(outputs,
                          #EXPECTED_EVENTS) // [Recorded<Event<#EXPECTED_OUTPUT_TYPE>>]
      })

描述

    func testMultiplyWithRxBDD() {
        let integerInput = PublishSubject<Int>.init()
        let multiplyOutput: Observable<Int> = input.map({ $0 * $0 }).asObservable()
        
        let test = RxBDD.init(inputObservable: integerInput,
                              outputType: Int.self)
                   
        // Given: I have 10, 20, 30 Integer input events
        test.given([.next(100, 10),
                    .next(200, 20),
                    .next(300, 30)])  
                    
        // When: It should multiply input integer events
        test.when(output)
        
        // Then: It should have multiplied integer events
        test.then({ outputs in
                XCTAssertEqual(outputs,
                               [.next(100, 100),
                                .next(200, 400),
                                .next(300, 900)])
            })
    }

更多查看

要求

  • Xcode, ~> 10.x
  • Swift, 4.2 // 5.0 即将推出!
  • RxSwift, ~> 4.0
  • RxCocoa, ~> 4.0
  • RxTest, ~> 4.0

安装

RxBDD 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 之中

target 'YOUR_PROJECT_Example' do

  target 'YOUR_PROJECT_Tests' do
    pod 'RxBDD'
  end
end

作者

Geektree0101, [email protected]

许可

RxBDD 在 MIT 许可下可用。有关更多信息,请参阅 LICENSE 文件。