这里对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
Run Code Online (Sandbox Code Playgroud)
具体来说,最后两个expect()行失败,出现如下错误:
NoMethodError: undefined method `to' for 1:Fixnum
Run Code Online (Sandbox Code Playgroud)
然而,第一个期望线工作正常.而gene.id绝对是一个FixNum.
Ruby 2.1.2,rspec 3.0.0,Mac OS 10.9.4上的RubyMine.
有什么想法吗?
Ale*_*x P 32
最后两expect行中的间距正在绊倒Ruby解释器.
expect (5).to equal(1)
Run Code Online (Sandbox Code Playgroud)
被Ruby评估为:
expect(5.to(equal(1)))
Run Code Online (Sandbox Code Playgroud)
当你真正的意思是:
expect(5).to(equal(1))
Run Code Online (Sandbox Code Playgroud)
它是调用expect()具有方法的返回值to; RSpec没有扩展Ruby内置类型.所以你应该将你的最后两个期望改为:
expect(ct).to equal(1)
expect(5).to eq(5)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3924 次 |
| 最近记录: |