今のところ私はルビーを学んでおり、rspecとBDDを使ってアプリケーションを開発する方法を学びたいと思っています。私が書く行動で思うのは難しいです。>それを方向づけます。私はrspecのためのいくつかの簡単な初心者のチュートリアルを見つけましたが、私がクラスなしで小さなプログラムを構築した私のケースではあまり役に立ちません。rspecでルビープログラムをテストする
これは私のコードです。シンプルなシーザー暗号回転プログラム速いブリーフィング...ユーザがROTに0〜26の文字を入力し、例えば "ROT24 some text" を入力すると、入力が適切にフォーマットされ、範囲内であるかどうかをチェックし、ROTワードの後ろの数字に応じてテキストの文字を回転させる。例ROT5はアルファベット順に5つの文字を回転します。
i=0
#check input
while true
puts
if i>0
puts "Wrong Entry Please Try Again!"
puts "Input Decipher key in ROT0-ROT26 format and text to decipher using white space between. Example (ROT2 SomeText)"
input=gets.chop
else
puts "Input Decipher key in ROT0-ROT26 format and text to decipher using white space between. Example (ROT2 SomeText)"
input=gets.chop
i+=1
end
break if input.match(/\AROT([0-9]|1[0-9]|2[0-6]) /)
end
#splitting input
inputArray=input.split(" ",2)
inputFirstPart= inputArray[0]
inputKey=inputFirstPart[3..4].to_i
inputText= inputArray[1]
#cipher method
def rotate (str,num)
alphabetLow = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"]
alphabetUp = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"]
second_step=str.tr(alphabetLow.join,alphabetLow.rotate(num).join)
second_step.tr(alphabetUp.join,alphabetUp.rotate(num).join)
end
#output result
print "Your result is: "
print rotate(inputText,inputKey)
puts
誰もが(もしこの貧しい魂のためにいくつかの暇な時間を持っている)、このコードのRSpecのテストを書くことができますので、私はそれをリバースエンジニアリングすることができますか?私はいくつかのことを試しましたが、とりわけ私はユーザーの入力と混同しています。テスト中に、私には意味をなさない入力を実際に行うよう求めています。
ありがとうございます。