Тестирование RUBY_PLATFORM с RSpec 2 - PullRequest
2 голосов
/ 27 марта 2011

Есть ли способ изменить константу RUBY_PLATFORM, чтобы я мог проверить следующий метод с RSpec2?

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

Ответы [ 3 ]

4 голосов
/ 28 марта 2011

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 голос
/ 27 марта 2011

В этом блоге есть способ заглушить константы и подавить предупреждения.

1 голос
/ 27 марта 2011

Просто установите его.(будет генерировать предупреждения, игнорировать их)

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