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"
بالنسبة لي ، يبدو هذا الأخير أكثر مرونة قليلاً لأنه سيعمل في أي اتجاه ، ولكنه قد لا يكون مناسبًا في جميع الحالات.
في صحتك،
يوحنا