1

アクション付きのコントローラーがあります:

def new
  @team = Team.new
  @team.team_links.build
end

そして、このアクションを rspec でテストしたいと思います。(アプリケーションでは正常に動作するため、動作することはわかっていますが、仕様が失敗しています。)これが私の仕様です。

it "returns new team with built in team_link" do
  get 'new'

  team = assigns(:team)
  team.should be_new_record
  team.team_links.should_not be_empty # HERE IS WHERE IT FAILS
end

エラーメッセージは次のとおりです。

 1) TeamsController GET new returns @team and builds one team_link
     Failure/Error: team.team_links.should_not be_empty
       expected empty? to return false, got true
4

1 に答える 1

2

@team.team_links.buildは永続レコードでもインスタンス変数でもないため、この行の効果はビュー コンテキストで消えました。

ビューでテストできるようにするには、インスタンス変数として割り当てる必要があります。

# Controller
@team_link = @team.team_link.build

# Rspec
assigns(:team_link).should_not be_empty
于 2013-05-15T03:10:26.017 に答える