在Rspec中使用expect匹配器

在Rspec中使用expect匹配器,rspec,Rspec,我很确定这是一个非常愚蠢的问题,但我对Cucumber、Ruby和Rspec都是新手,我正在为一些非常基本的问题而挣扎 我安装了rspec gem,我想使用期望匹配器: 预期(实际)。至等式(预期) 看起来我应该能够简单地要求rspec/expections,然后执行这些命令,但是它不起作用 我错过了什么 1.9.3-p448 :001 > require 'rspec' => true 1.9.3-p448 :002 > require 'rspec/expectatio

我很确定这是一个非常愚蠢的问题,但我对Cucumber、Ruby和Rspec都是新手,我正在为一些非常基本的问题而挣扎

我安装了rspec gem,我想使用期望匹配器: 预期(实际)。至等式(预期)

看起来我应该能够简单地要求rspec/expections,然后执行这些命令,但是它不起作用

我错过了什么

1.9.3-p448 :001 > require 'rspec'
 => true 
1.9.3-p448 :002 > require 'rspec/expectations'
 => true 
1.9.3-p448 :003 > expected = "this"
 => "this" 
1.9.3-p448 :004 > actual = "this"
 => "this" 
1.9.3-p448 :005 > expect(actual).to eq(expected)
NoMethodError: undefined method `expect' for main:Object
from (irb):5
from /Users/lpc/.rvm/rubies/ruby-1.9.3-p448/bin/irb:16:in `<main>'

感谢您的帮助。

如果使用Cucumber,您只需在env.rb文件中包含“rspec/expections”,然后在步骤定义中使用预期语法即可

env.rb:

 require 'rspec/expectations'
步骤.rb:

 Then(/^I should be able to use rspec$/) do
   expected = "this"
   actual= "this"
   expect(actual).to eql(expected)
 end
我的错误是在ruby控制台中错误地测试了这种语法。你不能这么做,因为Cucumber为你做了一些汽车制造的东西


“cucumber看到定义的Spec::Matchers和Spec::Expectations模块时,将在执行步骤的世界中隐式包含它们。”

如果使用cucumber,您只需在env.rb文件中包含“rspec/Expectations”,然后在步骤定义中使用预期语法即可

env.rb:

 require 'rspec/expectations'
步骤.rb:

 Then(/^I should be able to use rspec$/) do
   expected = "this"
   actual= "this"
   expect(actual).to eql(expected)
 end
我的错误是在ruby控制台中错误地测试了这种语法。你不能这么做,因为Cucumber为你做了一些汽车制造的东西


“当cucumber看到定义的Spec::Matchers和Spec::Expections模块时,它将在执行步骤的世界中隐式地包含它们。”

我非常希望能够在Rails控制台中试验expect()Matchers。我意识到我可以将它们包装在descripe/it块中,但在控制台中没有得到有用的结果

描述“基本rspec测量”完成“应该完成我的投标”完成预期(:a)。到等式(:a)结束;结束

它返回
RSpec::Core::ExampleGroup::Nested_2


有人能洞察到一个人是如何做到这一点的吗?我很好奇rspec内部发送通过/失败条件的路径是什么。我意识到这是rspec的一种非典型高级用法,但我很好奇;)

我非常希望能够在Rails控制台中试验expect()匹配器。我意识到我可以将它们包装在descripe/it块中,但在控制台中没有得到有用的结果

描述“基本rspec测量”完成“应该完成我的投标”完成预期(:a)。到等式(:a)结束;结束

它返回
RSpec::Core::ExampleGroup::Nested_2

有人能洞察到一个人是如何做到这一点的吗?我很好奇rspec内部发送通过/失败条件的路径是什么。我意识到这是rspec的一种非典型高级用法,但我很好奇;)

test=description“basic rspec feasure”do it“should do my bidding”do expect(:a)to eq(:a)end;结束
测试。如果测试通过
测试=描述“基本rspec测量”做它“应该做我的投标”做预期(:a),运行将为真;结束测试。如果测试通过,则运行将为真