2009-03-06 4 views
3

ファイル内に定義されたクラスを私のRailsプロジェクトのlib dirはクラスメソッドとして多数のユーティリティ関数を実装します。私はTest :: Unitを使ってそれらのメソッドに対してテストを書いて、それらをプロジェクトの定期的なテストルーチンの一部として実行させたいと思います。モデルやコントローラではないコードをテストするにはどうすればいいですか

私は

require 'test_helper' 

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

... testディレクトリのトップレベルにファイルを貼り付けるみました...しかし、それは動作しませんでした。テストは実行されませんでした。

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 

そして、それを実行している:限り、それはそれを拾う必要があり_test.rbで終わるよう

[ 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 

7

私はテスト/ユニットに貼り付けています。私はそれが "正しい"アプローチであるかどうかはわかりませんが、それは私にとってはうまくいくようです...

1

これはヘルパー機能

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 
をテスト機能の\ \ application_helper_test.rb試験の一例です
関連する問題