0

私が書いているテストは、割り当てを削除できるかどうかを確認することです。最初にリンク自体の存在を確認すると思いました。

describe "Deleting an assignment" do
        before{ visit assignments_path }
        it{ should have_selector('th', text: "Band Member") }
    end

ページ自体をロードすると、エラーなしで完全にレンダリングされます (Heroku へのプッシュはまだ試していません) が、テスト環境は次のように返します。

Failures:

  1) Assignment pages Deleting an assignment 
     Failure/Error: before{ visit assignments_path }
     ActionView::Template::Error:
       undefined method `name' for nil:NilClass

エラーの原因となっているコードは割り当てスタブにあります

<td><%= assignment.user.name + " " + assignment.user.surname%></td>

私の割り当てコントローラーのインデックスアクションは単純です:

  def index
  @assignments = Assignment.all
  end

明らかなことは何も見えないので、助けていただければ幸いです。前もって感謝します!

4

2 に答える 2

1

テスト環境で作成されたユーザーの最初のインスタンスは 1 ではなく 31 であることが判明しました。これは、別のテスト スイートで 30 人のユーザーのセットを作成していたが、後でユーザーを削除したためです (したがって、ユーザー 1 が存在しなかった理由)。 . ID だと思っていたものをハードコーディングするのではなく、呼び出しを使用して役割を割り当てることで、これを回避しました。

@assignment = Assignment.create(user_id: @user.id, role_id: @roleSecond.id)
于 2012-07-05T14:31:45.157 に答える
0

テスト用と開発用に異なるデータベースを使用していますか? そうである場合は、テスト データベースですべての割り当てにユーザーが含まれていることを確認します。

于 2012-07-05T11:47:46.033 に答える