首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RSpec生成的测试“将请求的experience_level赋值为@experience_level”意味着什么?

RSpec生成的测试“将请求的experience_level赋值为@experience_level”意味着什么?
EN

Stack Overflow用户
提问于 2013-10-10 20:53:09
回答 1查看 75关注 0票数 1

我正在试着让这个规范通过,但我不知道它意味着什么。这是完整的规格说明。第二个示例失败了。

代码语言:javascript
复制
describe "PUT update" do
    describe "with valid params" do
      it "updates the requested experience_level" do
        experience_level = ExperienceLevel.create! valid_attributes
        # Assuming there are no other experience_levels in the database, this
        # specifies that the ExperienceLevel created on the previous line
        # receives the :update_attributes message with whatever params are
        # submitted in the request.
        ExperienceLevel.any_instance.should_receive(:update_attributes).with({ "name" => "MyString" })
        put :update, {:id => experience_level.to_param, :experience_level => { "name" => "MyString" }}
      end

      it "assigns the requested experience_level as @experience_level" do
        experience_level = ExperienceLevel.create!(name: 'test'), valid_attributes
        put :update, {:id => experience_level.to_param, :experience_level => valid_attributes}
        assigns(:experience_level).should eq(experience_level)
      end

      it "redirects to the experience_level" do
        experience_level = ExperienceLevel.create! valid_attributes
        put :update, {:id => experience_level.to_param, :experience_level => valid_attributes}
        response.should redirect_to(experience_level)
      end
    end

以下是终端中的信息:

代码语言:javascript
复制
1) ExperienceLevelsController PUT update with valid params assigns the requested experience_level as @experience_level
     Failure/Error: assigns(:experience_level).should eq(experience_level)

       expected: [#<ExperienceLevel id: 1, name: "test", description: nil, created_at: "2013-10-10 20:40:05", updated_at: "2013-10-10 20:40:05">, {"name"=>"MyString"}]
            got: #<ExperienceLevel id: 1, name: "MyString", description: nil, created_at: "2013-10-10 20:40:05", updated_at: "2013-10-10 20:40:05">

       (compared using ==)

       Diff:
       @@ -1,3 +1,2 @@
       -[#<ExperienceLevel id: 1, name: "test", description: nil, created_at: "2013-10-10 20:40:05", updated_at: "2013-10-10 20:40:05">,
       - {"name"=>"MyString"}]
       +#<ExperienceLevel id: 1, name: "MyString", description: nil, created_at: "2013-10-10 20:40:05", updated_at: "2013-10-10 20:40:05">

     # ./spec/controllers/experience_levels_controller_spec.rb:100:in `block (4 levels) in <top (required)>'
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-10 21:43:13

第二个示例中的以下语句:

代码语言:javascript
复制
experience_level = ExperienceLevel.create!(name: 'test'), valid_attributes

与以下相同:

代码语言:javascript
复制
experience_level = [ExperienceLevel.create!(name: 'test'), valid_attributes]

换句话说,它是从赋值操作符右侧的两个逗号分隔的值中创建一个数组,并将该数组赋值给experience_level。这至少是你考试失败的一个原因。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19306019

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档