0

我是rspec的初学者。

案例示例:

我的控制器:

def index
   id=params[:id];
   @nameTest=id+'test';
end

需要测试:

  1. 身份证的价值
  2. @nameTest 的值

我的代码失败:

it "basic test for index" do
      get :index,:id => 'myid'
      response.code.should eq("200")
      assigns(:id).should be_kind_of('myid')
      assigns(@nameTest).should be_kind_of('myidtest')
end

谢谢

4

1 回答 1

0

您的测试中有几个错误:

  1. 您尝试测试 id 的值id是本地方法变量,它会在index方法执行后消失。无法测试分配给局部变量的值。实际上它没有意义 - 在规范中,您只需要测试方法执行的结果(返回值、更改的状态等)。

  2. 您使用检查器检查分配的值be_kind_of。但be_kind_of检查左侧的值是否属于指定类,而不是指定值。如果你需要检查值,那么你可以使用==检查器。

对您的操作的正确测试如下:

it "basic test for index" do
  get :index, :id => 'myid'

  response.code.should eq("200")

  assigns(:nameTest).should == 'myidtest'
end
于 2012-08-21T08:54:45.097 回答