CSV RSpec ist das Projekt, an dem ich derzeit teilnehme
expect(csv).to have_content('value')
Ich schrieb es in Form von, aber da es notwendig wurde, den Wert für jede Zeile zu überprüfen, recherchierte ich verschiedene Dinge, aber es kam nicht in einer einfachen Suche heraus, also machte ich mir eine Notiz.
Angenommen, die folgende CSV
column_0 | column_1 |
---|---|
value_1 | value_2 |
value_3 | value_4 |
it 'example' do
csv_content = Sample.csv_content
csv = CSV.parse(csv_content)
# [Zeilennummer][Spaltenindex]
expect(csv[0][0]).to eq 'value_1'
expect(csv[0][1]).to eq 'value_2'
expect(csv[1][0]).to eq 'value_3'
expect(csv[1][1]).to eq 'value_4'
#Sie können auch Zeile für Zeile vergleichen
expect(csv[0]).to eq ['value_1', 'value_2']
expect(csv[1]).to eq ['value_3', 'value_4']
end
Dies beschleunigt den Test.
In den Kommentaren habe ich dir gesagt, was "CSV.table" heißt!
it 'example' do
csv_content_path = Sample.csv_content.path
table = CSV.table(csv_content_path) #Pfad passieren
table.headers # => [:column_0, :column_1]
# [Headername][Zeilennummer]
expect(table[:column_0][0]).to eq 'value_1'
expect(table[:column_0][1]).to eq 'value_2'
expect(table[:column_1][0]).to eq 'value_3'
expect(table[:column_1][1]).to eq 'value_4'
#Holen Sie sich Zeile für Zeile
expect(table[0]).to eq ['value_1', 'value_2']
expect(table[1]).to eq ['value_3', 'value_4']
#Holen Sie sich nach Spalte
expect(table[:column_0]).to eq ['value_1', 'value_3']
expect(table[:column_1]).to eq ['value_2', 'value_4']
end
Dies ist möglicherweise einfacher zu verwenden, wenn es implementiert wird. Es scheint, dass es für jede Spalte eine ganze Reihe von Verwendungsmöglichkeiten gibt.
CSV.table muss jedoch den Pfad der Datei übergeben. Seien Sie dort also vorsichtig.
Referenzlink https://qiita.com/gotchane/items/e615fed15901aed6c18a https://melborne.github.io/2013/01/24/csv-table-method-is-awesome/ https://docs.ruby-lang.org/ja/latest/class/CSV=3a=3aTable.html
Recommended Posts