ruby on rails - اختبار تحكم RSpec-استجابة فارغة




ruby-on-rails unit-testing (3)

RSpec 2+: إذا كنت تريد التحقق من نهاية إلى طرف - رابط إلى هيئة استجابة - استخدم مواصفات طلب بدلاً من مواصفات وحدة تحكم .

أنا عالق بمشكلة عند اختبار وحدات التحكم الخاصة بي مع RSpec - الرد response.body دومًا بإرجاع سلسلة فارغة. في كل شيء يجعل المتصفح بشكل صحيح ، ويبدو أن اختبارات ميزة الخيار للحصول على حق ، ولكن فشل RSpec في كل مرة.

توقعات أخرى على كائن الاستجابة ، مثل response.should render_template('index') تمر دون أي مشاكل.

هل واجه أي منكم هذه المشكلة من قبل؟ ربما يمكن الحصول على استجابة أتش تي أم أل بطريقة أخرى؟

أما بالنسبة للإصدارات ، القضبان 2.1.0 ، RSpec 1.2.7.


بشكل افتراضي ، اختراق rspec-rails في Rails لمنعه من عرض قوالب العرض بالفعل. يجب عليك فقط اختبار سلوك تصرفاتك وفلاتر اختبارات وحدة التحكم ، وليس نتيجة تقديم القالب - وهذا هو ماهية مواصفات العرض.

ومع ذلك ، إذا كنت ترغب في جعل نماذج وحدة التحكم تعرض نماذج مثل التطبيق عادةً ، render_views توجيه render_views :

describe YourController do
  render_views
  ...
end

كما عملت مع مشكلة مماثلة (التي قادتني إلى هذا السؤال) ، حدث لي أن هناك طرق مختلفة لبشر القطة نفسها. بمعنى آخر ، بدلاً من التحقق من النص الأساسي ، قد تتمكن من التحقق من محتوى الفلاش.

response.body.should =~ /Invalid email or password/

قد يكون اختبارًا مكافئًا لـ:

flash[:alert].should == "Invalid email or password"

بالنسبة لي ، يبدو هذا الأخير أكثر مرونة قليلاً لأنه سيعمل في أي اتجاه ، ولكنه قد لا يكون مناسبًا في جميع الحالات.

في صحتك،

يوحنا





rspec