tom*_*mmi 5 ruby rubygems rspec rspec2
我正在尝试创建一个双,但我不断收到此错误:
undefined method `double' for #<Class:0x007fa48c234320> (NoMethodError)
Run Code Online (Sandbox Code Playgroud)
我怀疑问题与我的规范助手有关,所以我在下面添加我的规范助手:
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
$LOAD_PATH.unshift(File.dirname(__FILE__))
require 'rspec'
require 'webmock/rspec'
include WebMock::API
include WebMock::Matchers
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
RSpec.configure do |config|
end
Run Code Online (Sandbox Code Playgroud)
Fre*_*ung 14
double在示例(和before块等)中存在,但听起来你试图在其中一个上下文之外调用它.
所以举个例子
describe Thing do
thing = double()
it 'should go bong'
end
end
Run Code Online (Sandbox Code Playgroud)
是不正确的但是
describe Thing do
before(:each) do
@thing = double()
end
it 'should go bong' do
other_thing = double()
end
end
Run Code Online (Sandbox Code Playgroud)
很好
小智 6
您也可以double通过要求独立文件来使用RSpec 之外的RSpec。
require "rspec/mocks/standalone"
greeter = double("greeter")
allow(greeter).to receive(:say_hi) { "Hello!" }
puts greeter.say_hi
Run Code Online (Sandbox Code Playgroud)
从文档中:https : //relishapp.com/rspec/rspec-mocks/v/3-2/docs/outside-rspec/standalone
| 归档时间: |
|
| 查看次数: |
7023 次 |
| 最近记录: |