2017-02-02 3 views
6

मैं अपने Quick/Nimble बीडीडी परीक्षणों में 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 एक sampleData पैरामीटर मैं एक JSON फ़ाइल का उपयोग कर बनाया गया है? परीक्षण में Moya स्टब अनुरोध करने के लिए कोई विचार?

धन्यवाद!

उत्तर

10

बस अपने प्रदाता का उपयोग करें जैसे आपने अपने असली कोड में किया था। मोया का पता चलता है कि वर्तमान लक्ष्य परीक्षण लक्ष्य है और अनुरोध करने के बजाए नमूना डेटा वापस कर देगा

+0

मैं एक परीक्षा लिखने की कोशिश कर रहा हूं जो getPlaces अनुरोध से प्रतिक्रिया जांचता है, लेकिन दोनों परीक्षणों के बाद इस प्रतिक्रिया के लिए सफल है: 'testProvider.request (.getPlaces (स्थान:" ")) { में स्थानों की अपेक्षा (स्थान) करें.अभियान (beNil()) }' और 'testProvider.request (.getPlaces (स्थान:" ")) { में स्थान (स्थान) .toNot (beNil()) } '। ऐसा क्यों होता है? मैं क्या गलत कर रहा हूँ? – Svyatoslav

+3

क्या आपने स्टबक्लोजर का उपयोग करके अपना परीक्षण प्रदाता बनाया था? इस तरह 'प्रदाता = RxMoyaProvider (stubClosure: MoyaProvider.immediatelyStub)' –

+0

धन्यवाद! यह कोड मेरे लिए काम करता है। – Svyatoslav

संबंधित मुद्दे