Pass mocked API object to rails controller during test -


मेरा प्रश्न एक रेल 4.0 4.0 नियंत्रक के परीक्षण (मिनीटेस्ट) के संबंध में है जो एपीआई को पूछता है। उदाहरण के लिए, मेरे पास यह नियंत्रक है:

  वर्ग InsolentController def शो @ रिट्ज = SomeApi.get value1, value2 end end  

अब मैं परीक्षण करना चाहता हूं यह मेरी एपीआई को कॉल किए बिना, इसलिए यदि मैं एएसपी.नेट एमवीसी का उपयोग कर रहा था तो मैं इस तरह से कुछ कर सकता हूं:

  सार्वजनिक कक्षा अनिद्रा नियंत्रक {निजी SomeAPI someApi; सार्वजनिक दिवालिएपन नियंत्रक (कुछ एपीआई एपीआई = नल) {this.someApi = api ?? नया SomeAPI (); } सार्वजनिक कार्यप्रदर्शन दिखाएँ () {var परिणाम = this.someApi.Get (मान 1, मान 2); // वापसी, आदि ...}}  

मैं ऐसा करता हूं ताकि मैं कुछ एपीआई का नकली कर सकता हूं। तो मैं इस बारे में कैसे जाना है जब मैं रेल के साथ मिनीटेस्ट का उपयोग करना चाहता हूं, उदाहरण के लिए:

  अपेक्षित 'test_helper' वर्ग InsolentControllerTest & lt; ActionController :: TestCase परीक्षण "दिखाना चाहिए" प्राप्त करें: दिखाएँ, {value1: 10, value2: 34} assert_response: सफलता के अंत का अंत  

मैंने इसे समाप्त करने और इसे न्यूनतम से सेट अप करने के लिए समाप्त कर दिया है।

आपको आसानी से ऐसा कुछ करने में सक्षम होना चाहिए:

  'Test_helper' वर्ग की आवश्यकता होती है InsolentControllerTest & lt; ActionController :: TestCase परीक्षण "दिखाना चाहिए" मान 1 = 10 मूल्य 2 = 34 उम्मीद है (कुछ एपीआई)। प्राप्त करने के लिए (: प्राप्त करें) .with (मान 1, मान 2): दिखाने, {value1: value1, value2: value2} assert_response: सफलता के अंत का अंत  

Comments