小编tom*_*nek的帖子

rspec 测试模型验证主题错误

这是我的验证测试,我想找到编写模型规范的最佳方法,特别是验证。但我对下面的代码有问题。

require 'spec_helper'

describe Ad, :focus do
  let(:ad) { Ad.sham!(:build) }

  specify { ad.should be_valid }

  it "not creates a new instane given a invalid attribute" do
    ad = Ad.new
    ad.should_not be_valid
  end

  [:title, :category_id, :email, :ad_content, :name, :price].each do |attr|
    it "should require a #{attr}" do
      subject.errors[attr].should include("blank") 
    end
  end    
end
Run Code Online (Sandbox Code Playgroud)

当我运行此规范时,我收到此错误:

   5) Ad should require a name
     Failure/Error: subject.errors[attr].should include("blank")
       expected [] to include "blank"
       Diff:
       @@ -1,2 +1,2 @@
       -blank
       +[]
     # ./spec/model/ad_spec.rb:15:in `block (3 levels) in …
Run Code Online (Sandbox Code Playgroud)

validation rspec ruby-on-rails ruby-on-rails-3

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

如何存根:Rspec中的哪个方法?

我有以下代码:

Group.where('name ~* ?', params[:name]).first
Run Code Online (Sandbox Code Playgroud)

where在那种情况下如何存根方法?

Group.stub(:where).and_return(mock_model(Group, name: "SomeName"))
Run Code Online (Sandbox Code Playgroud)

导致错误:

Mock "Group_1001" received unexpected message :first with (no args)
Run Code Online (Sandbox Code Playgroud)

ruby rspec ruby-on-rails stub

0
推荐指数
2
解决办法
2547
查看次数

为什么我不能使用should_receive并分配一个控制器规范?

我尝试在控制器中添加assigns我的update动作规范

it "update the content" do
  Answer.should_receive(:find).with(answer.id.to_s).and_return(answer)
  answer.should_receive(:update_attributes).with("content" => "Changed content")

  put :update, id: answer.id, app_id: app.id, answer: {content: "Changed content"}

  assigns(:answer).content.should eq('Changed content') # explicitly permitted
  response.status.should eq 406
end
Run Code Online (Sandbox Code Playgroud)

但我得到错误:

 Failure/Error: assigns(:answer).content.should eq('Changed content') # explicitly permitted

   expected: "Changed content"
        got: "base content"

   (compared using ==)
Run Code Online (Sandbox Code Playgroud)

但是当我评论时:

#answer.should_receive(:update_attributes).with("content" => "Changed content")

规格通过.为什么?

ruby rspec ruby-on-rails ruby-on-rails-3

0
推荐指数
1
解决办法
42
查看次数

在VIM中保存文件时会导致5秒延迟的原因是什么?

当我在rails应用程序文件夹中保存文件冻结约5秒时会出现什么问题?如何调查此问题?

VIMRC:https://gist.github.com/4632cbcfc655899c934f

vim ruby-on-rails

0
推荐指数
1
解决办法
171
查看次数

标签 统计

ruby-on-rails ×4

rspec ×3

ruby ×2

ruby-on-rails-3 ×2

stub ×1

validation ×1

vim ×1