2014-02-14 72 views
1

如何從Test::Unit::TestCase初始化env.rb。我希望能夠在我的Ruby/Cucumber應用程序中單元測試我的ruby方法,並且事先做好大量的設置。初始化ruby中的單元測試env.rb

簡化的例子:

env.rb

require 'logger' 

$LOG = Logger.new(STDOUT) 

HelloWorld.rb

class HelloWorld 
    def say_hi 
    greeting = 'Hello World' 

    $LOG.info greeting 

    greeting 
    end 
end 

TestHelloWorld.rb

require 'hello_world' 

class TestHelloWorld < Test::Unit::TestCase 

    def test_say_hi 
    assert_equal('Hello World', HelloWorld.new.say_hi) 
    end 
end 

運行TestHellowWorld給出NoMethodError: undefined method info'for nil:NilClass`

回答

0

假設Test :: Unit腳本目錄和黃瓜項目是兄弟項目,您可以使用relative require來要求env.rb。例如:

/cucumber_project/features/support/env.rb

require 'logger' 
$LOG = Logger.new(STDOUT) 

hello_world.rb

class HelloWorld 
    def say_hi 
    greeting = 'Hello World' 
    $LOG.info greeting 
    greeting 
    end 
end 

test.rb

require_relative 'hello_world' 
require_relative '../cucumber_project/features/support/env' 
require 'test/unit' 

class TC_HelloWorld < Test::Unit::TestCase 

    def test_say_hi 
    assert_equal('Hello World', HelloWorld.new.say_hi) 
    end 

end 
+0

工作我問這個問題的方式,但沒有解決我的主要問題。我需要深入研究如何更好地問。謝謝! – rlshep

相關問題