2016-10-30 14 views
0

私はRubyとUnit Testingを試していますが、テストケースを実行しようとすると単純に何も返されません。好奇心をそそるのは、実行されたテストの数とアサーションの数などの前にテストが実行されていたことです。しかし何らかの理由で彼らは走りを止めました。Rubyテストが実行されない

#TipoMovimento.rb 

class TipoMovimento 
    attr_accessor :designacao 
    attr_accessor :cor 
    attr_accessor :regras 

    def initialize(aDesignacao, aCor, asRegras) 
     @designacao = aDesignacao 
     @cor = aCor 
     @regras = asRegras 
    end 

    def ==(other) 
     other.class == self.class && other.state == self.state 
    end 

    def state 
     self.instance_variables.map { |variable| self.instance_variable_get variable } 
    end 
end 

#TesteTipoMovimento.rb 

require './TipoMovimento.rb' 
require 'test/unit' 

class TesteTipoMovimento < Test::Unit::TestCase 
    def setup 
     @tm = TipoMovimento.new('Des1', 'Cor1', ['r1', 'r2']) 
    end 

    def tc_equal 
     tm2 = TipoMovimento.new('Des1', 'Cor1', ['r1', 'r2']) 
     assert_true(tm2 == @tm) 
     tm2 = TipoMovimento.new('Des2', 'Cor1', ['r1', 'r2']) 
     assert_false(tm2 == @tm) 
    end 
end 

両方のファイルが同じフォルダ内にある:私は2つの分離したファイルがあります。残念ながら、テストファイルを実行すると何も起こりません。私がenterを押すと、プロンプトは単に私のコマンドを無視します。以下のような何か:

C:\My Ruby Files\>ruby TesteTipoMovimento.rb 

C:\My Ruby Files\> 

これは明らかに私が欠けているという単純なものですので、誰もが、私はそれを感謝私を助けることができれば。ありがとう!

答えて

1

あなたはそのテストクラスにテストがありません。メソッドをテストするには、その名前の前にtest_という接頭辞を付けます。

class TesteTipoMovimento < Test::Unit::TestCase 
    def setup 
     @tm = TipoMovimento.new('Des1', 'Cor1', ['r1', 'r2']) 
    end 

    def test_tc_equal 
     tm2 = TipoMovimento.new('Des1', 'Cor1', ['r1', 'r2']) 
     assert_true(tm2 == @tm) 
     tm2 = TipoMovimento.new('Des2', 'Cor1', ['r1', 'r2']) 
     assert_false(tm2 == @tm) 
    end 
end 
+0

Ah!ありがとう。私はどこかで、テストケースに接頭辞tc_を付けることをお勧めしていたことを読んでいました。 – psargaco

関連する問題