2013-11-16 2 views
2

я тестирование рубинового приложения с помощью MiniTestкак издеваются метод экземпляра другого класса в MiniTest

и у меня есть сценарий, как это:

class TestExample 

    def test_method 
     SomeOtherClass.new.print_message "Hello World!!!!!" 
    end 

end 

здесь я хочу издеваться print_message методом SomeOtherClass и попытался это как это

mock = MiniTest::Mock.new 
test_example = TestExample.new 
mock.expect(SomeOtherClass.new, nil, ["Hello World!!!!!"]) 
test_example.test_method 
mock.verify 

его не работает, это дает исключение, как: -

MockExpectationError: ожидается # («Hello World !!!!!») => [], got []

спасибо за любые предложения и ответы.

ответ

3
class TestMocking < MiniTest::Unit::TestCase 
    def test_mocking 
    some_other_class_mock = MiniTest::Mock.new 
    some_other_class_mock.expect :print_message, nil, ["Hello World!!!!!"] 

    SomeOtherClass.stub :new, some_other_class_mock do 
     test_example = TestExample.new 
     test_example.test_method 
    end 

    some_other_class_mock.verify 
    end 
end 
Смежные вопросы