有没有办法更改RUBY_PLATFORM常量,以便我可以使用RSpec2测试以下方法?
def determine_os
case RUBY_PLATFORM
when /darwin/ then :mac
when /linux/ then :linux
else raise InvalidOSError
end
end
答案 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有一种方法可以存根常量并抑制警告。