【问题标题】:RSpec reads context first, then reads before(:all). Why?RSpec 首先读取上下文,然后读取 before(:all)。为什么?
【发布时间】:2012-02-12 19:37:30
【问题描述】:

我的环境:

jruby-1.5.3
Rails 2.3.8
RSpec 1.3.1
Windows 7 (64-bit machine)

使用以下源代码运行 Rspec,为什么 rspec 读取标有 '=>' 的行,这是语句 before(:each) 之前的上下文。非常感谢任何帮助

def save_env @host_os = 配置::CONFIG['host_os'] 结尾 def restore_env 配置::CONFIG['host_os'] = @host_os 结尾 描述 Manager::ManagerConfig 做 之前(:每个)做 保存环境 结尾 之后(:每个)做 restore_env 结尾 上下文“在 Linus/Solaris 环境中”做 => 配置::CONFIG['host_os'] = 'linux' 它“应该在 linux/solaris 下返回正确的管理器路径” # 酒吧 结尾 它“应该在 windows env 下返回正确的许可证路径” # 富 结尾 结尾 结尾

【问题讨论】:

    标签: ruby-on-rails ruby debugging rspec


    【解决方案1】:

    上下文设置了一个内部类,因此其中的行将在加载时执行,除了每个itbeforeafter 创建一个稍后将执行的代码块。

    您需要做的就是将配置设置包装在它自己的before(:each) 块中,顺序将是您所期望的:外部before(:each),然后是内部before(:each),然后是it

    before(:each) do
      Config::CONFIG['host_os'] = 'linux'
    end
    

    【讨论】:

      猜你喜欢
      • 2016-10-04
      • 2014-05-27
      • 1970-01-01
      • 1970-01-01
      • 2015-04-11
      • 2021-12-04
      • 2013-05-13
      • 2015-04-03
      相关资源
      最近更新 更多