2016-09-27 39 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 
相关问题