2009-03-06 2 views
3

У меня есть класс, определенный в файле, который управляет моим проектом Rails lib, который реализует кучу функций утилиты как методы класса. Я бы хотел написать тесты против этих методов с помощью Test :: Unit и запустить их как часть обычной процедуры тестирования проекта.Как вы тестируете код, который не является моделью или контроллером?

Я пытался вставлять файл на верхнем уровне test реж ...

require 'test_helper' 

class UtilsTest < ActiveSupport::TestCase 
    should 'be true' do 
    assert false 
    end 
end 

... но это не сработало. Тест не выполнялся.

Каков нормальный способ проверки кода, который не является одной из обычных частей Rails?

ответ

4

Вы можете поместить их в свой раздел без каких-либо осложнений.

Моя библиотека:

[ cpm juno ~/apps/feedback ] cat lib/my_library.rb 
class MyLib 
    def look_at_me 
    puts "I DO WEIRD STUFF" 
    end 
end 

Мой Тест:

[ cpm juno ~/apps/feedback ] cat test/unit/fake_test.rb 
require 'test_helper' 

class FakeTest < ActiveSupport::TestCase 
    # Replace this with your real tests. 
    def test_truth 
    require 'my_library' 

    puts "RUNNING THIS NOW" 
    MyLib.new.look_at_me 
    assert true 
    end 
end 

И запустить его:

[ cpm juno ~/apps/feedback ] rake test:units 
(in /home/cpm/apps/feedback) 
/usr/bin/ruby1.8 -Ilib:test "/usr/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake/rake_test_loader.rb" "test/unit/fake_test.rb" 
Loaded suite /usr/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake/rake_test_loader 
Started 
RUNNING THIS NOW 
I DO WEIRD STUFF 
. 
Finished in 0.254404 seconds. 

1 tests, 1 assertions, 0 failures, 0 errors 
Loaded suite /var/lib/gems/1.8/bin/rake 
Started 

Finished in 0.00094 seconds. 

0 tests, 0 assertions, 0 failures, 0 errors 

Пока она заканчивается в _test.rb он должен забрать его.

7

Я просто вставляю их в тест/блок. Я не уверен, что это «правильный» подход, но, похоже, он работает для меня ...

1

это пример теста \ функционала \ application_helper_test.rb, что проверить функциональность Helper

require File.dirname(__FILE__) + '/../test_helper' 

require 'application_helper' 

class HelperTest < Test::Unit::TestCase 
    include ApplicationHelper 

    def test_clear_search_string 
     assert_equal 'Park Ave', clear_search_string('street Park Ave') 
    end 
end 
Смежные вопросы