2017-02-02 4 views
6

MoyaスタブリクエストをQuick/Nimble BDDテストで作成します。 Moyaは、私はJSONファイルを使用して作成したsampleData次のパラメータがあります。BDDテストでのMoyaスタブリクエスト

var sampleData: Data { 
    switch self { 
    case .getPlaces: 
     // Provided that project have a file named get_places.json in it's bundle. 
     guard let path = Bundle.main.path(forResource: "get_places", ofType: "json"), 
      let data = Data(base64Encoded: path) else { 
       return Data() 
     } 
     return data 
    case .getPlaceDetail: 
     // Provided that project have a file named get_place_detail.json in it's bundle. 
     guard let path = Bundle.main.path(forResource: "get_place_detail", ofType: "json"), 
      let data = Data(base64Encoded: path) else { 
       return Data() 
     } 
     return data 
    } 
} 

は、どのように私はテストでは、このパラメータを使用することができますか?テストでMoyaスタブリクエストを行うためのアイデアはありますか?

ありがとうございました!

答えて

10

実際のコードと同じように、プロバイダを使用してください。 Moyaは現在のターゲットがテストターゲットであることを検出し、要求を実行する代わりにサンプルデータを返します

+0

私はgetPlacesリクエストからの応答をチェックするテストを作成しようとしていますが、 'testProvider.request(.getPlaces(所在地: "")){ における場所が期待する(場所).TO(beNil()) }' と 'testProvider.request(.getPlaces(所在地: "")) { の場所は(場所).toNot(beNil()) } 'になります。 これはなぜ発生するのですか?私は間違っているの? – Svyatoslav

+3

stubClos​​ureを使用してテストプロバイダを作成しましたか?このように 'let provider = RxMoyaProvider (stubClos​​ure:MoyaProvider.immediatelyStub)' –

+0

ありがとう!このコードは私のために働く。 – Svyatoslav

関連する問題