ربما طلب غريب هنا ولكن ...
هل سيكون من الممكن الاستهزاء بمهلة HTTP؟ أنا أختبر معالجة الأخطاء والقدرة على السخرية من طلب انتهاء المهلة ستكون مفيدة للغاية.
مرحبًا جيفري ،
كنت أفكر في هذه الميزة. يمكن أن يحتوي WebMock على شيء مثل stub_request (: get، "www.google.com"). to_timeout
يمكنك حاليًا تحقيق هذه الوظيفة باستخدام .to_raise (e) حيث يمثل e استثناءً لانتهاء المهلة المحددة للمكتبة.
بيت القصيد من webmock هو أن تكون مكتبة عميل http مستقلة لذا يجب أن تعمل to_timeout مع كل مكتبة.
تكمن المشكلة في أن المكتبات المختلفة ترجع أخطاء مختلفة ، أي Net :: HTTP تُرجع Ruby Timeout :: Error بينما يقوم HTTPClient برفع HTTPClient :: TimeoutError.
يمكن تكرار هذا السلوك في WebMock ولكن يجب أن يكون رمز معالجة الخطأ مختلفًا في أي وقت تقوم فيه بتغيير المكتبة.
لم أكن أعرف شيئًا عن الارتفاع. في حين أن مهلة to_timeout العامة ستكون بالطبع أجمل ، إلا أنني سعيد جدًا بالرفع من أجل أغراضي.
أضيفت في الماجستير.
يمكنك القيام بما يلي الآن:
stub_request(:any, 'www.example.net').to_timeout
RestClient.post('www.example.net', 'abc') # ===> RestClient::RequestTimeout
سيؤدي ذلك دائمًا إلى رفع استثناء المهلة المحددة لعميل http.
رائع ، شكرا جزيلا!
التعليق الأكثر فائدة
أضيفت في الماجستير.
يمكنك القيام بما يلي الآن:
سيؤدي ذلك دائمًا إلى رفع استثناء المهلة المحددة لعميل http.