私は文字列、配列などを比較する一連の小さなRubyプログラムを書いています。私は現在、自分のメソッドのために小さなユニットテストを書く方法を学んでいます。私は文字列に関数を実行する単純なテストを書くことができましたが、配列の関数を実行するテストのような難しいテストについては、わかりません。誰かがこの現在の質問で私を助けることができたら、私は本当にそれを感謝します。ここでplant_methods.rbに何だprogram.rb、plant_methods.rb、およびtc_plant_methods.rbRubyでテストする - 配列のサブアレイを比較するテストを書く方法は?
:
それでは、私は3つの私のフォルダ内のファイルを持っているとしましょう。このクラスには2つのメソッドがあるクラスが含まれています。 plant_sortメソッドは、配列の配列をループし、配列の最初の項目に従ってアルファベット順に並べ替えます。ここで
class Plant_Methods
def initialize
end
def self.plant_sort(array)
array.sort! { |sub_array1, sub_array2|
sub_array1[0] <=> sub_array2[0] }
end
end
はprogram.rbが実行されたときにprogram.rb
require_relative 'plant_methods'
plant_array = [['Rose', 'Lily', 'Daisy'], ['Willow', 'Oak', 'Palm'], ['Corn', 'Cabbage', 'Potato']]
Plant_Methods.plant_sort(plant_array)
print plant_array
そしてここでのコードが出力されています。あなたは、各サブアレイは今最初の要素に基づいてアルファベット順に並べているように:今
[["Corn", "Cabbage", "Potato"], ["Rose", "Lily", "Daisy"], ["Willow", "Oak", "Palm"]]
、私の質問は:どのように私は、このためのユニットテストを書くのですか?ここに私のtc_plant_methods.rbファイルに現在何だ:
require_relative "plant_methods"
require_relative "program"
require "test/unit"
class Test_Plant_Methods < Test::Unit::TestCase
def test_plant_sort
assert_equal("[["Gingko", "Beech"], ["Rice", "Wheat"], ["Violet", "Sunflower"]]", Plant_Methods.new([["Violet", "Sunflower"], ["Gingko", "Beech"], ["Rice", "Wheat"]]).plant_sort([["Violet", "Sunflower"], ["Gingko", "Beech"], ["Rice", "Wheat"]]))
end
end
私はユニットテストを実行しようとすると、私はエラーを得続けます。私はここで間違ったことをして誰でも識別できますか? 「[[」、ここで、
"[["Gingko", "Beech"], ["Rice", "Wheat"], ["Violet", "Sunflower"]]"
tc_plant_methods.rb:8: syntax error, unexpected tCONSTANT, expecting ')'