2014-02-14 4 views
1

Как инициализировать env.rb от Test::Unit::TestCase. Я хочу, чтобы иметь возможность тестировать мои рубиновые методы в моем приложении Ruby/Cucumber, а env.rb выполняет множество настроек перед началом работы.Инициализировать 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 информация»для ноля: NilClass`

ответ

0

Предполагая, что :: каталог блока сценария тестирования и проект огурца являются братьями и сестрами, вы можете использовать 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

Смежные вопросы