اختبار القضبان طرق: لا يمكن العثور ActionController :: :: التأكيدات طرق RoutingAssertions

StackOverflow https://stackoverflow.com/questions/1806351

سؤال

وأنا أحاول لاختبار الطرق على القضبان بلدي 2.3.4 التطبيق. هناك العديد من المواقع التي تشرح كيفية اختبار الطرق، بما في ذلك مستندات القضبان، ولكن أنا الحصول على أخطاء اتباع التعليمات.

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

وقال ان هذا هو نسخة مختصرة من test/unit/TitlesTest.rb

require File.dirname(__FILE__) + '/../test_helper'

class TitleTest < Test::Unit::TestCase
  # include ActionController::Assertions::RoutingAssertions

  def test_routes
    assert_routing "games", { :controller => "titles", :section => "games", :action => "index", :id => nil }
  end
end

وrake test:units فشل مع الخطأ:

NoMethodError: undefined method `assert_routing' for #<TitleTest:0x7f387232ec98>
    /test/unit/title_test.rb:7:in `test_routes'

ورأيت في API القضبان التي assert_routing يتم تعريفها في ActionController::Assertions::RoutingAssertions، لذلك حاولت أن تشمل هذه الوحدة، فقط لأنها قد تفشل في أي مكان آخر.

لاحظ خط include علق في المثال رمز أعلاه.

NoMethodError: undefined method `clean_backtrace' for #<TitleTest:0x7fd895fadf00>
    /test/unit/title_test.rb:7:in `test_routes'

وclean_backtrace هو آخر طريقة الاختبار المحددة في ActionController :: :: TestCase التأكيدات.

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

نصائح أخرى

وينبغي أن يتم

والاختبارات التوجيه كجزء من اختبارات التكامل.

ويمكن أن تتولد هذه باستخدام script/generate script/generate integration_test routes

وعلى سبيل المثال:

class RoutesTest < ActionController::IntegrationTest
  fixtures :all

  def test_resources_route
    assert_routing "titles/15", { :controller => "titles", :action => "show", :id => "15" }
  end
end

والتوجيه ملف وحدة اختبار لديك يجب أن يتضمن وحدة ActionController::Assertions::RoutingAssertions منذ القضبان 2.3.2.

scroll top