Ich versuche, die Entwicklung meiner Tests zu beschleunigen, indem ich die Beispiele verwende, die ich zur Entwicklung der Funktion im Output verwende.
Ich habe zwei Arrays: Eingabe und Ausgabe.
function(input[0]) == output[0]
.
Die Schleife funktioniert, bleibt aber im letzten Index stecken. Beispiel: Wenn input.length = 10 ist, führt sie immer function(input[10]) == output[10] aus.
describe "multiple_chords" do
input = ["A7 DMaj79", "E-7 A7", "D-7 G7", "Bb-7b5 Eb7b9" , "Bb-7b5 Eb7", "G7 A7", "D-7b5 G7b9", "D-79 G#7913"]
output = [[{"root"=>"A", "def"=>"7"}, {"root"=>"D", "def"=>"Maj7"}], [{"root"=>"E", "def"=>"-7"}, {"root"=>"A", "def"=>"7"}], [{"root"=>"D", "def"=>"-7"}, {"root"=>"G", "def"=>"7"}], [{"root"=>"Bb", "def"=>"-7b5"}, {"root"=>"Eb", "tensions"=>"b9", "def"=>"7"}], [{"root"=>"Bb", "def"=>"-7b5"}, {"root"=>"Eb", "def"=>"7"}], [{"root"=>"G", "def"=>"7"}, {"root"=>"A", "def"=>"7"}], [{"root"=>"D", "def"=>"-7b5"}, {"root"=>"G", "tensions"=>"b9", "def"=>"7"}], [{"root"=>"D", "tensions"=>"9", "def"=>"-7"}, {"root"=>"G#", "tensions"=>["9", "13"], "def"=>"7"}]]
for i in 0..input.length-1
it "analysiert korrekt #{input[i]}" do
expect(IpmChords::multiple_chords(input[i])).to eq(output[i])
end
end
end
Der Output in der Konsole ist:
6) IpmChords multiple_chords analysiert korrekt Bb-7b5 Eb7
Failure/Error: expect(IpmChords::multiple_chords(input[i])).to eq(output[i])
expected: [{"root"=>"D", "tensions"=>"9", "def"=>"-7"}, {"root"=>"G#", "tensions"=>["9", "13"], "def"=>"7"}]
got: [{"root"=>"D", "tensions"=>"9", "def"=>"-7"}, {"root"=>"G#", "tensions"=>"13", "def"=>""}]
(verglichen mit ==)
Diff:
@@ -1,3 +1,3 @@
[{"root"=>"D", "tensions"=>"9", "def"=>"-7"},
- {"root"=>"G#", "tensions"=>["9", "13"], "def"=>"7"}]
+ {"root"=>"G#", "tensions"=>"13", "def"=>""}]
# ./spec/ipm_classes/ipm_chords_ipm_class_spec.rb:28:in `block (4 levels) in '
7) IpmChords multiple_chords analysiert korrekt E-7 A7
Failure/Error: expect(IpmChords::multiple_chords(input[i])).to eq(output[i])
expected: [{"root"=>"D", "tensions"=>"9", "def"=>"-7"}, {"root"=>"G#", "tensions"=>["9", "13"], "def"=>"7"}]
got: [{"root"=>"D", "tensions"=>"9", "def"=>"-7"}, {"root"=>"G#", "tensions"=>"13", "def"=>""}]
(verglichen mit ==)
Diff:
@@ -1,3 +1,3 @@
[{"root"=>"D", "tensions"=>"9", "def"=>"-7"},
- {"root"=>"G#", "tensions"=>["9", "13"], "def"=>"7"}]
+ {"root"=>"G#", "tensions"=>"13", "def"=>""}]
Man kann sehen, dass immer derselbe Array-Index ausgewertet wird, aber der Testname ändert sich für jede Schleifeniteration:
6) IpmChords multiple_chords analysiert korrekt Bb-7b5 Eb7
7) IpmChords multiple_chords analysiert korrekt E-7 A7
Ich denke, es wird eine große Zeitersparnis sein und es sollte funktionieren, oder?? Hoffe, Sie können mir helfen. Danke