Ошибки тестирования в Rails с CouchRest Model с использованием RSpec - PullRequest
1 голос
/ 28 мая 2011

У меня есть обычный проект Rails (без Active Record), использующий CouchDB (couchrest_model) в качестве базы данных документов.

Я настроил RSpec и базовый каркас 'Project'.

Когда я проверяю следующую спецификацию:

  before(:each) do
    @project = Project.create! valid_attributes
  end

  describe "GET index" do
    it "assigns all projects as @projects" do
      get :index
      assigns(:projects).should eq([@project])
    end
  end

Я получаю следующую ошибку:

Failure/Error: assigns(:projects).should eq([@project])

       expected [{"name"=>"test", 
                  "updated_at"=>2011-05-28 11:24:04 -0500,
                  "created_at"=>2011-05-28 11:24:04 -0500, 
                  "couchrest-type"=>"Project",
                  "_id"=>"709edbfaafb24fa1eff7d5f3966b2bda",
                  "_rev"=>"1-ae3f6356f8e32f6006337a4f3759bca4"}]
            got [{"name"=>"test",
                  "updated_at"=>2011-05-28 11:24:04 -0500, 
                  "created_at"=>2011-05-28 11:24:04 -0500,
                  "_id"=>"709edbfaafb24fa1eff7d5f3966b2bda",
                  "_rev"=>"1-ae3f6356f8e32f6006337a4f3759bca4",
                  "couchrest-type"=>"Project"}]

Похоже, единственное отличие - это порядок элементов в хэше:

  (compared using ==)

   Diff:

   @@ -1,7 +1,7 @@
    [{"name"=>"test",
      "updated_at"=>2011-05-28 11:24:04 -0500,
      "created_at"=>2011-05-28 11:24:04 -0500,
   -  "couchrest-type"=>"Project",
      "_id"=>"709edbfaafb24fa1eff7d5f3966b2bda",
   -  "_rev"=>"1-ae3f6356f8e32f6006337a4f3759bca4"}]
   +  "_rev"=>"1-ae3f6356f8e32f6006337a4f3759bca4",
   +  "couchrest-type"=>"Project"}]

Я знаю, что «rspec» и «rspec-rails» работают только из коробки для Active Record, но они не должны быть такими разными для других ORM. Я что-то упустил?

Какой лучший способ исправить этот тест?

1 Ответ

0 голосов
/ 30 мая 2011

Попробуйте:

assigns(:projects).should == [@project]
...