这里是 rspec 的全新内容,这将变得很明显。
以下 rspec 文件失败:
require_relative( 'spec_helper')
describe GenotypingScenario do
it 'should add genes' do
scen = GenotypingScenario.new
gene = Gene.new( "Pcsk9", 989 )
scen.addGene( gene )
expect( gene.id).to eq( 989 )
ct = scen.genes.count
expect (ct).to equal(1)
expect (5).to eq(5)
end
end
具体来说,最后两行 expect() 失败,错误如下:
NoMethodError: undefined method `to' for 1:Fixnum
但第一条 expect 行工作正常。而 gene.id 绝对是一个 FixNum。
Mac OS 10.9.4 上的 Ruby 2.1.2、rspec 3.0.0、RubyMine。
有什么想法吗?
最佳答案
最后两行 expect
中的间距使 Ruby 解释器出错。
expect (5).to equal(1)
被 Ruby 评估为:
expect(5.to(equal(1)))
当你真正的意思是:
expect(5).to(equal(1))
它是调用 expect()
的返回值,它有一个方法 to
; RSpec 没有扩展 Ruby 内置类型。因此,您应该将最后两个期望更改为如下内容:
expect(ct).to equal(1)
expect(5).to eq(5)
关于ruby - RSpec 中的 "to"方法出现问题(未定义的方法),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25474005/