rspec w/IronRuby缺少be_*方法

rspec w/IronRuby缺少be_*方法,ruby,rspec,ironruby,Ruby,Rspec,Ironruby,我安装的RSpecGem的IronRuby似乎缺少自动化的be_*方法助手。例如,以下代码生成未定义的方法错误: require 'rubygems' require 'rspec' x = 7 x.should == 7 # works x.nonzero?.should == 7 #works x.should be_nonzero # undefined method `be_nonzero' for main:Object 我使用igem安装rspecgem。以下是我安装的gems列

我安装的RSpecGem的IronRuby似乎缺少自动化的be_*方法助手。例如,以下代码生成未定义的方法错误:

require 'rubygems'
require 'rspec'

x = 7
x.should == 7 # works
x.nonzero?.should == 7 #works
x.should be_nonzero # undefined method `be_nonzero' for main:Object
我使用igem安装rspecgem。以下是我安装的gems列表:

bewildr (0.1.14)
builder (3.0.0)
cucumber (0.6.3)
diff-lcs (1.1.3)
iron-term-ansicolor (0.0.3)
json_pure (1.7.3)
polyglot (0.3.3)
rspec (2.11.0)
rspec-core (2.11.1)
rspec-expectations (2.11.1)
rspec-mocks (2.11.1)
term-ansicolor (1.0.7)
treetop (1.4.10)

你知道我在这里遗漏了什么吗?

RSpec匹配器通常只在
it
块中可用,以避免污染全局名称空间。您是否尝试过在不同的Ruby实现上运行代码?你会得到同样的错误。

我也有同样的问题,但你的帖子激励我做一些研究。我在这里找到了解决方案: 简而言之,在我的“features\support\env.rb”中,我添加了以下内容:

require 'rspec/expectations'
World(RSpec::Matchers)

嗯,你说得对-把代码放进描述中…如果。。。block解决了这个问题。但如果是这样的话,当我想让这些匹配器出现在it块之外时,我该如何介绍它们呢?就像在黄瓜里面一样,/^etc$/do块的时候?或者我认为这个功能来自rspec是错误的?