2016-09-27 2 views
0

У меня есть следующий код:Как проверить метод с несколькими выходными данными?

def game 
    case rand(2) 
    when 0 
    "One" 
    when 1 
    "Two" 
    end 
end 

Теперь я хочу, чтобы проверить его, так что я написал следующий тест:

require_relative 'random.rb' 
require 'test/unit' 

class StringTest < Test::Unit::TestCase 

    def test_respond 
    assert_equal("One" || "Two", game) 
    end 

end 

Но, тест видит только "One", "Two" не видно. Как я могу это исправить? Должен ли я использовать что-то отличное от ||? Или другая функция? Выражение

ответ

3
"One" || "Two" 

всегда оценивается в 'One', потому что "One" это truthy значение, поэтому он никогда не достигает "Two" части.

Вы можете пойти с

class StringTest < Test::Unit::TestCase 
    def test_respond 
    assert %w(One Two).include?(game) 
    end 
end 
Смежные вопросы