In diesem Moment lerne ich Ruby, und ich möchte lernen, wie man Apps mit rspec und BDD entwickelt, aber ich habe noch nie irgendwelche Tests gemacht. Es ist schwer für mich, im Schreibverhalten zu denken -> mach es dir in die richtige Richtung. Ich habe einige einfache Anfänger-Tutorials für rspec gefunden, aber nicht so hilfreich in meinem Fall, wo ich ein kleines Programm ohne Klassen gebaut habe.Ruby-Programm testen mit rspec
Dies ist mein Code. Einfaches Cesar-Chiffre-Rotationsprogramm. Schnell kurz ... wenn der Benutzer ROT mit 0-26 und Text zum Beispiel "ROT24 etwas Text" eingibt, prüft er, ob die Eingabe richtig formatiert und innerhalb von Bereichen ist, und dreht dann Zeichen in Text abhängig von dieser Nummer nach dem ROT-Wort. Beispiel ROT5 dreht Zeichen für 5 Spots in alphabetischer Reihenfolge.
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
Kann jemand (wenn etwas Freizeit für diese arme Seele haben) schreiben Sie rspec Test für diesen Code, damit ich es rückentwickeln kann? Ich habe einige Sachen versucht, aber vor allem bin ich mit Benutzereingaben verwirrt, weil während des Tests sein Bitten mich, tatsächlich die Eingabe zu tun, die keinen Sinn für mich macht.
Vielen Dank im Voraus.