[RUBY] Vérifiez la valeur CSV avec RSpec

CSV RSpec est le projet auquel je participe actuellement

expect(csv).to have_content('value')

Je l'ai écrit sous la forme de, mais comme il devenait nécessaire de vérifier la valeur de chaque ligne, je recherchais diverses choses, mais cela ne sortait pas d'une simple recherche, alors j'ai pris une note.

En supposant le csv suivant

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)
  # [numéro de ligne][Index des colonnes]
  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'

  #Vous pouvez également comparer ligne par ligne
  expect(csv[0]).to eq ['value_1', 'value_2']
  expect(csv[1]).to eq ['value_3', 'value_4']
end

Cela accélérera le test.

Postscript

Dans les commentaires, je vous ai dit ce qu'on appelle CSV.table!

it 'example' do
  csv_content_path = Sample.csv_content.path
  table = CSV.table(csv_content_path) #Passer le chemin
  table.headers # => [:column_0, :column_1]

  # [Nom de l'en-tête][numéro de ligne]
  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'

  #Obtenir ligne par ligne
  expect(table[0]).to eq ['value_1', 'value_2']
  expect(table[1]).to eq ['value_3', 'value_4']

  #Obtenir par colonne
  expect(table[:column_0]).to eq ['value_1', 'value_3']
  expect(table[:column_1]).to eq ['value_2', 'value_4']
end

Cela peut être plus facile à utiliser s'il est mis en œuvre. Il semble qu'il y ait plusieurs utilisations que vous pouvez obtenir en même temps pour chaque colonne.

Cependant, CSV.table doit transmettre le chemin du fichier, alors soyez prudent.


Lien de référence 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

Vérifiez la valeur CSV avec RSpec
Vérifier les arguments d'appel de méthode dans les blocs avec RSpec
Importation CSV avec BOM
[Rails] Test avec RSpec
Utiliser Webmock avec Rspec
Testez Nokogiri avec Rspec.
Sortie de fichier csv avec csv ouvert
Vérifier la conformité avec les exercices orientés objet
Comment vérifier les nombres entiers avec ruby
Tester Active Strage avec RSpec
Sortie CSV par Apache Commons CSV
Tester le résolveur GraphQL avec rspec
Vérification de l'environnement passionnant avec mkmf
[Java 8] Suppression en double (et vérification en double) avec Stream
[Java] Vérification de l'existence des éléments avec Stream
Contrôle d'entrée facile avec Bean Validation!
Vérifier quand moss avec SimpleDateFormat parse
Copier et coller le test avec RSpec
[rails] Faisons un test unitaire avec Rspec!