Faraday: صفحة الاختبار لوثائق جديدة

تم إنشاؤها على ٩ يوليو ٢٠١٩  ·  4تعليقات  ·  مصدر: lostisland/faraday

معلومات أساسية

  • نسخة فاراداي: سيد
  • إصدار روبي: 2.6.3

وصف المشكلة

لا يوجد توثيق للاختبار مع فاراداي. حيث أعمل ، تم تقديم Ruby on Rails لأنه رائع. لم يتم التفكير كثيرًا في اختبار الحالات الحمراء. أود المساهمة ببعض الوثائق لمساعدة الآخرين

خطوات التكاثر

  • زيارة الموقع.
  • انقر فوق usage
  • اتبع الروابط التالية في التذييل حتى لا تتمكن من المتابعة بشكل أكبر (https://lostisland.github.io/faraday/usage/streaming)
  • إشعار عدم وجود اختبار في الاستخدام: scream_cat:

التعليق الأكثر فائدة

شكرا لجلب هذا الأمر. رداً على ذلك ، قمت بنشر PR لتضمين اختبار مباشر / وحدة وأمثلة rspec لاستخدام محول اختبار فاراداي: # 1000. هذه هي الطريقة الموصى بها لاختبار Faraday ، بدلاً من اختبار مكتبات مزدوجة خارجية (rspec ، mocha ، webmock ، إلخ).

ال 4 كومينتر

شكرا لجلب هذا الأمر. رداً على ذلك ، قمت بنشر PR لتضمين اختبار مباشر / وحدة وأمثلة rspec لاستخدام محول اختبار فاراداي: # 1000. هذه هي الطريقة الموصى بها لاختبار Faraday ، بدلاً من اختبار مكتبات مزدوجة خارجية (rspec ، mocha ، webmock ، إلخ).

لم ألاحظ في أي وقت أنه يختبر أشياء مثل المهلات وأخطاء الاتصال وما إلى ذلك. هل الموضوع مستاء أو الطريقة التي يستخدمها PR # 998 فقط.

أفترض أنني لا أحصل على بناء الجملة

أفترض أنني لا أحصل على بناء الجملة

عفوًا ، ربما ينبغي عليّ إعادة زيارة مستندات اختبار فاراداي مرة أخرى: /

يستخدم بناء الجملة في # 1000 مثيل Faraday::Adapter::Test::Stubs ، وهو كائن كعب روتين حصري لاختبار دورات طلبات / استجابة faraday. يمكنك استخدامه لإعداد استجابات وهمية لطلبات http في اختبار معين.

  it 'parses name' do
    # this block yields a rack response: an array with:
    # response status, http header hash, and response body
    stubs.get('/ebi') do |env|
      [
        200,
        { 'Content-Type': 'application/javascript' },
        '{"name": "shrimp"}'
      ]
    end

    expect(client.sushi('ebi')).to eq('shrimp')
    stubs.verify_stubbed_calls
end

أعتذر ، من الواضح أنني لم أقرأ مشاكلك جيدًا بما فيه الكفاية. لقد فاتني تمامًا رغبتك تحديدًا في اختبار الاستثناءات. اختبار مثل هذا يعمل أيضًا (سأضيفه إلى # 1000):

  it 'handles exception' do
    stubs.get('/ebi') do
      raise Faraday::ConnectionFailed, nil
    end

    expect { client.sushi('ebi') }.to raise_error(Faraday::ConnectionFailed)
    stubs.verify_stubbed_calls
  end

أنا أفضل التطبيقات المزدوجة للاختبار المحدد مثل هذا على نهج الاستهزاء الأكثر عمومية ، لأنها لا تزال تمر عبر سير عمل طلب فاراداي بأكمله. إذا أراد أحد المطورين استخدام نماذج RSpec على أي حال ، فسيتم تقديمهم بشكل أفضل مع وثائق RSpec الممتازة.

سلمت مع # 1000

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات