小编fak*_*tic的帖子

如何测试实例变量是在RSpec控制器中实例化的

我正在尝试检查我的RESTful控制器中的新操作是否设置了所需Object类型的实例变量.看起来非常典型,但执行它时遇到了麻烦

客户控制器

def new
  @client = Client.new
end  
Run Code Online (Sandbox Code Playgroud)

测试

describe "GET 'new'" do
  it "should be successful" do
    get 'new'
    response.should be_success
  end

  it "should create a new client" do
    get 'new'
    assigns(:client).should == Client.new
  end
end
Run Code Online (Sandbox Code Playgroud)

结果是...

'ClientsController GET 'new' should create a new client' FAILED
  expected: #,
       got: # (using ==)

这可能是因为它试图比较两个不同的活动记录实例.那么,我如何检查控制器是否设置了一个包含Client模型新实例的实例变量.

ruby rspec

35
推荐指数
3
解决办法
2万
查看次数

有没有办法一步到位?

$ clients = $ CLIENT-> find($ options); $ client = $ clients [0];

编辑:我意识到我应该更清楚.$ CLIENT-> find总是返回一个对象数组,但是我想要一行代码将数组(只有一个对象)转换成一个对象.

php arrays

2
推荐指数
1
解决办法
187
查看次数

标签 统计

arrays ×1

php ×1

rspec ×1

ruby ×1