Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby RSPEC在我的投票规范中传递了一个名称错误_Ruby_Rspec - Fatal编程技术网

Ruby RSPEC在我的投票规范中传递了一个名称错误

Ruby RSPEC在我的投票规范中传递了一个名称错误,ruby,rspec,Ruby,Rspec,我的选票上有个名字错误,我不太明白。它应该确保选票的值仅为1和-1。我最近收到了很多代码中的非错误,所以我想知道我应该如何着手解决这些问题 require 'rails_helper' describe Vote do def valid? (@vote == 1) || (@vote == -1) end describe "validations" do before do

我的选票上有个名字错误,我不太明白。它应该确保选票的值仅为1和-1。我最近收到了很多代码中的非错误,所以我想知道我应该如何着手解决这些问题

    require 'rails_helper'

    describe Vote do
        def valid?
            (@vote == 1) || (@vote == -1)
        end

    describe "validations" do

        before do
            good_v = Votes.new(value: 1)
            bad_v = Votes.new(value: -1)
            no_v = Votes.new(value:  2)
        end

        describe "value validation" do
            it "only allows -1 or 1 as values" do
                expect(good_v.valid?).to eq(true) 
                expext(bad_v.valid?).to eq(true)
                expect(no_v.valid?).to eq(false)
            end
        end
    end
 end
它似乎不喜欢我用来创建投票的投票方法。我想使用
good\u v=@post.vows.create(value:1)
,但我认为这也不管用

clyde-browns-computer-2:bloccit clydiscope$ rspec spec/models/vote_spec.rb
F

Failures:

  1) Vote validations value validation only allows -1 or 1 as values
     Failure/Error: expect(good_v.valid?).to eq(true)
     NameError:
       undefined local variable or method `good_v' for #    <RSpec::ExampleGroups::Vote::Validations::ValueValidation:0x007fdd4ad44700>
# ./spec/models/vote_spec.rb:19:in `block (4 levels) in <top (required)>'

Finished in 0.00397 seconds (files took 1.68 seconds to load)
1 example, 1 failure

Failed examples:

rspec ./spec/models/vote_spec.rb:18 # Vote validations value validation only allows -1 or 1 as values
clyde-browns-computer-2:bloccit-clydiscope$rspec spec/models/vote_spec.rb
F
失败:
1) 投票验证值验证仅允许-1或1作为值
失败/错误:预期(良好/有效?)到等式(正确)
名称错误:
未定义的局部变量或#的“good_v”方法
#./spec/models/vote_spec.rb:19:in'block(4层)in'
在0.00397秒内完成(加载文件需要1.68秒)
1例,1例失败
失败的示例:
rspec./spec/models/vote_spec.rb:18#投票验证值验证仅允许-1或1作为值

应该有一个地方,我应该定义一些东西,但我不确定缺少什么

错误表明您的代码出错

before do
block设置一个局部变量,但在
description
block中不能使用它

将该代码更改为:

before do
  @good_v = Votes.new(value: 1)
  @bad_v = Votes.new(value: -1)
  @no_v = Votes.new(value:  2)
end

然后在测试用例中使用这些实例变量。

错误表明代码出错

before do
block设置一个局部变量,但在
description
block中不能使用它

将该代码更改为:

before do
  @good_v = Votes.new(value: 1)
  @bad_v = Votes.new(value: -1)
  @no_v = Votes.new(value:  2)
end

然后在测试用例中使用这些实例变量。

错误表明代码出错

before do
block设置一个局部变量,但在
description
block中不能使用它

将该代码更改为:

before do
  @good_v = Votes.new(value: 1)
  @bad_v = Votes.new(value: -1)
  @no_v = Votes.new(value:  2)
end

然后在测试用例中使用这些实例变量。

错误表明代码出错

before do
block设置一个局部变量,但在
description
block中不能使用它

将该代码更改为:

before do
  @good_v = Votes.new(value: 1)
  @bad_v = Votes.new(value: -1)
  @no_v = Votes.new(value:  2)
end

然后在测试用例中使用这些实例变量。

在rspec中,您应该使用
let
指令:

require 'rails_helper'

class Vote
  def valid?
    (@vote == 1) || (@vote == -1)
  end
end

describe "validations" do

  let(:good_v) { Vote.new(value: 1) }
  let(:bad_v) { Vote.new(value: -1) }
  let(:no_v) { Vote.new(value:  2) }

  describe "value validation" do
    it "only allows -1 or 1 as values" do
      expect(good_v.valid?).to eq(true) 
      expect(bad_v.valid?).to eq(true)
      expect(no_v.valid?).to eq(false)
    end
  end
end

在rspec中,您应该使用
let
指令:

require 'rails_helper'

class Vote
  def valid?
    (@vote == 1) || (@vote == -1)
  end
end

describe "validations" do

  let(:good_v) { Vote.new(value: 1) }
  let(:bad_v) { Vote.new(value: -1) }
  let(:no_v) { Vote.new(value:  2) }

  describe "value validation" do
    it "only allows -1 or 1 as values" do
      expect(good_v.valid?).to eq(true) 
      expect(bad_v.valid?).to eq(true)
      expect(no_v.valid?).to eq(false)
    end
  end
end

在rspec中,您应该使用
let
指令:

require 'rails_helper'

class Vote
  def valid?
    (@vote == 1) || (@vote == -1)
  end
end

describe "validations" do

  let(:good_v) { Vote.new(value: 1) }
  let(:bad_v) { Vote.new(value: -1) }
  let(:no_v) { Vote.new(value:  2) }

  describe "value validation" do
    it "only allows -1 or 1 as values" do
      expect(good_v.valid?).to eq(true) 
      expect(bad_v.valid?).to eq(true)
      expect(no_v.valid?).to eq(false)
    end
  end
end

在rspec中,您应该使用
let
指令:

require 'rails_helper'

class Vote
  def valid?
    (@vote == 1) || (@vote == -1)
  end
end

describe "validations" do

  let(:good_v) { Vote.new(value: 1) }
  let(:bad_v) { Vote.new(value: -1) }
  let(:no_v) { Vote.new(value:  2) }

  describe "value validation" do
    it "only allows -1 or 1 as values" do
      expect(good_v.valid?).to eq(true) 
      expect(bad_v.valid?).to eq(true)
      expect(no_v.valid?).to eq(false)
    end
  end
end