[RUBY] Überprüfen Sie den CSV-Wert mit RSpec

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.

Nachtrag

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

Überprüfen Sie den CSV-Wert mit RSpec
Überprüfen Sie die Argumente für Methodenaufrufe in Blöcken mit RSpec
CSV-Import mit Stückliste
[Schienen] Test mit RSpec
Verwenden Sie Webmock mit Rspec
Testen Sie Nokogiri mit Rspec.
Ausgabe einer CSV-Datei mit offener CSV
Überprüfen Sie die Einhaltung objektorientierter Übungen
Wie man ganze Zahlen mit Rubin überprüft
Testen Sie Active Strage mit RSpec
Testen Sie den GraphQL-Resolver mit rspec
Spannende Umweltprüfung mit mkmf
[Java 8] Doppelte Löschung (& doppelte Überprüfung) mit Stream
[Java] Elementexistenzprüfung mit Stream
Einfache Eingabeprüfung mit Bean Validation!
Überprüfen Sie, wann Moos mit SimpleDateFormat analysiert wird
Kopieren Sie den Test und fügen Sie ihn mit RSpec ein
[Schienen] Machen wir einen Unit-Test mit Rspec!