Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby Rspec任意\u实例存根导致错误未定义方法\uu Rspec\u原始\u dup_Ruby_Rspec_Stub - Fatal编程技术网

Ruby Rspec任意\u实例存根导致错误未定义方法\uu Rspec\u原始\u dup

Ruby Rspec任意\u实例存根导致错误未定义方法\uu Rspec\u原始\u dup,ruby,rspec,stub,Ruby,Rspec,Stub,我试图为该类的任何实例(通过任何_实例)删除一个类方法。我的测试成功运行,但在测试结束时,当rspec尝试重置any_实例存根时,它抛出一个错误(无法从回溯中找到匹配行)。下面是明显的罪魁祸首代码行(删除它会删除错误): 完整错误如下所示。似乎存根本应(但未能)创建_rspec_original_dup方法,当重置发生时,它找不到预期的方法 Failure/Error: Unable to find matching line from backtrace NameError: und

我试图为该类的任何实例(通过任何_实例)删除一个类方法。我的测试成功运行,但在测试结束时,当rspec尝试重置any_实例存根时,它抛出一个错误(无法从回溯中找到匹配行)。下面是明显的罪魁祸首代码行(删除它会删除错误):

完整错误如下所示。似乎存根本应(但未能)创建_rspec_original_dup方法,当重置发生时,它找不到预期的方法

 Failure/Error: Unable to find matching line from backtrace
 NameError:
   undefined method `__rspec_original_dup' for class `Confetti::Config'
 # /Library/Ruby/Gems/1.8/gems/rspec-mocks-2.11.1/lib/rspec/mocks/any_instance.rb:73:in `alias_method'
 # /Library/Ruby/Gems/1.8/gems/rspec-mocks-2.11.1/lib/rspec/mocks/any_instance.rb:73:in `restore_dup'
 # /Library/Ruby/Gems/1.8/gems/rspec-mocks-2.11.1/lib/rspec/mocks/any_instance.rb:72:in `class_eval'
 # /Library/Ruby/Gems/1.8/gems/rspec-mocks-2.11.1/lib/rspec/mocks/any_instance.rb:72:in `restore_dup'
 # /Library/Ruby/Gems/1.8/gems/rspec-mocks-2.11.1/lib/rspec/mocks/any_instance.rb:46:in `rspec_reset'
 # /Library/Ruby/Gems/1.8/gems/rspec-mocks-2.11.1/lib/rspec/mocks/space.rb:17:in `reset_all'
 # /Library/Ruby/Gems/1.8/gems/rspec-mocks-2.11.1/lib/rspec/mocks/space.rb:16:in `each'
 # /Library/Ruby/Gems/1.8/gems/rspec-mocks-2.11.1/lib/rspec/mocks/space.rb:16:in `reset_all'
 # /Library/Ruby/Gems/1.8/gems/rspec-mocks-2.11.1/lib/rspec/mocks.rb:23:in `teardown'
 # /Library/Ruby/Gems/1.8/gems/rspec-core-2.11.1/lib/rspec/core/mocking/with_rspec.rb:18:in `teardown_mocks_for_rspec'
 # /Library/Ruby/Gems/1.8/gems/rspec-core-2.11.1/lib/rspec/core/example.rb:308:in `run_after_each'
 # /Library/Ruby/Gems/1.8/gems/rspec-core-2.11.1/lib/rspec/core/example.rb:119:in `run'
 # /Library/Ruby/Gems/1.8/gems/rspec-core-2.11.1/lib/rspec/core/example.rb:253:in `with_around_each_hooks'
 # /Library/Ruby/Gems/1.8/gems/rspec-core-2.11.1/lib/rspec/core/example.rb:110:in `run'
 # /Library/Ruby/Gems/1.8/gems/rspec-core-2.11.1/lib/rspec/core/example_group.rb:378:in `run_examples'
 # /Library/Ruby/Gems/1.8/gems/rspec-core-2.11.1/lib/rspec/core/example_group.rb:374:in `map'
 # /Library/Ruby/Gems/1.8/gems/rspec-core-2.11.1/lib/rspec/core/example_group.rb:374:in `run_examples'
 # /Library/Ruby/Gems/1.8/gems/rspec-core-2.11.1/lib/rspec/core/example_group.rb:360:in `run'
 # /Library/Ruby/Gems/1.8/gems/rspec-core-2.11.1/lib/rspec/core/example_group.rb:361:in `run'
 # /Library/Ruby/Gems/1.8/gems/rspec-core-2.11.1/lib/rspec/core/example_group.rb:361:in `map'
 # /Library/Ruby/Gems/1.8/gems/rspec-core-2.11.1/lib/rspec/core/example_group.rb:361:in `run'
 # /Library/Ruby/Gems/1.8/gems/rspec-core-2.11.1/lib/rspec/core/command_line.rb:28:in `run'
 # /Library/Ruby/Gems/1.8/gems/rspec-core-2.11.1/lib/rspec/core/command_line.rb:28:in `map'
 # /Library/Ruby/Gems/1.8/gems/rspec-core-2.11.1/lib/rspec/core/command_line.rb:28:in `run'
 # /Library/Ruby/Gems/1.8/gems/rspec-core-2.11.1/lib/rspec/core/reporter.rb:34:in `report'
 # /Library/Ruby/Gems/1.8/gems/rspec-core-2.11.1/lib/rspec/core/command_line.rb:25:in `run'
 # /Library/Ruby/Gems/1.8/gems/rspec-core-2.11.1/lib/rspec/core/runner.rb:69:in `run'
 # /Library/Ruby/Gems/1.8/gems/rspec-core-2.11.1/lib/rspec/core/runner.rb:8:in `autorun'
 # /usr/bin/rspec:19

我通过简单地使用Rspec v2.10.0而不是v2.11.0解决了这个问题:

gem 'rspec', '~> 2.10.0'
从Henrik提供的链接来看,听起来他们可能会发布Rspec的错误修复。关注更多信息。与此同时,降级为我解决了这个问题


(感谢您帮助我解决这个问题,Henrik。)

看起来您正在使用OSX系统Ruby。如果使用RVM或rbenv,它是否有效?我问这个问题是因为我们看到了相同的行为,但只适用于运行OSX系统Ruby的开发人员。升级到RSPEC2.11后得到了类似的结果。我使用的是RVM中的Ruby 1.9.3,不过是在OSX上,如果这与此相关的话。我执行
ThinkingSphinx::Search.any_instance.stub(:error)
并获取类'ThinkingSphinx::Search'的错误
未定义的方法'dup',回溯中有以下内容:
/Users/henrik/.rvm/gems/ruby-1.9.3-p0-patched@foobar/gems/rspec-mocks-2.11.1/lib/rspec/mocks/any_instance.rb:64:in'alias_method'
。创建了一个问题:
gem 'rspec', '~> 2.10.0'