使用RSpec 2测试RUBY_PLATFORM

时间:2011-03-27 01:30:50

标签: ruby testing rspec2

有没有办法更改RUBY_PLATFORM常量,以便我可以使用RSpec2测试以下方法?

def determine_os
  case RUBY_PLATFORM
    when /darwin/ then :mac
    when /linux/ then :linux
    else raise InvalidOSError
  end
end

3 个答案:

答案 0 :(得分:4)

RUBY_PLATFORM不应用于确定操作系统。请改为使用哈希RbConfig中的相应项目。

另外,如果你想让它更容易测试,你可以做

def determine_os(os_string)
  case os_string
    when /darwin/ then :mac
    when /linux/ then :linux
    else raise InvalidOSError
  end
end

您可以determine_os("darwin")进行测试。

答案 1 :(得分:1)

设置它。 (将生成警告,忽略它们)

RUBY_PLATFORM = "darwin"
determine_os              #=> :mac
RUBY_PLATFORM = "mingw"
determine_os              #=> raises InvalidOSError

答案 2 :(得分:1)

This blog post有一种方法可以存根常量并抑制警告。