如何测试控制器中的新记录是否具有属性

时间:2013-07-04 00:44:26

标签: rspec rspec-rails

我知道我可以使用assigns查看实例变量是否已分配给某些内容,但如何测试是否已设置其他属性?

class UsersController < ApplicationController
  def new
     @user = User.new
     @user.name = "Tom Lehrer"
  end
end

describe UsersController do
  it "assigns a user" do
    get :new
    expect(assigns(:user)).to be_a_new(User)
  end

  it "sets the new users name" do
    # ??
  end
end

3 个答案:

答案 0 :(得分:2)

您可以针对assigns(:user)

进行测试
expect(assigns(:user).name).to eq("Expected Name")

答案 1 :(得分:2)

指定(:用户).name.should =='在此处命名'

答案 2 :(得分:0)

不明显吗?

User.any_instance.should_receive(:name).with("Tom Lehrer")
get :new