Dapatkan semua item di dalam tanda kutip di Definisi Langkah Mentimun

Saya punya string: I attach "dog.png", "cat.png", and "alphabet.doc"

Inilah yang ingin saya cocokkan:

1. dog.png
2. cat.png
3. alphabet.doc

Saya dapat melakukan ini dengan melakukan "([^"]*)", namun string harus dimulai dengan 'Saya lampirkan'

Ini adalah aturan saat ini yang saya miliki dalam definisi langkah saya: /^I attach "([^"]*)"$/ tetapi ini tidak berhasil.

Ini untuk mentimun/ketimun, saya bisa mencari tahu menggunakan scan tapi menurut saya Anda tidak bisa menggunakannya untuk cuke/ketimun?

Ada saran tentang cara untuk melakukan hal ini?

Terima kasih


person jreptak    schedule 08.08.2013    source sumber
comment
Anda tidak berpikir Anda bisa menggunakan scan?   -  person pguardiario    schedule 08.08.2013
comment
@pguardiario Aturan ini untuk definisi langkah   -  person jreptak    schedule 08.08.2013


Jawaban (2)


Jika Anda ingin menangkap sejumlah variabel input dalam satu langkah, menurut saya opsi terbaik adalah menggunakan scan. Meskipun Anda tidak dapat menggunakan pemindaian secara langsung pada nama langkah, Anda dapat mengambil daftar lengkap file dan kemudian menguraikan hasil yang diambil.

Coba definisi langkah berikut:

Given /^I attach (.*)$/ do |file_list|
  files = file_list.scan(/"(.+?)"/).flatten
  #=> ["dog.png", "cat.png", "alphabet.doc"]
end

Ini akan membuat serangkaian file untuk dilampirkan. Itu dapat menangani 1 hingga file tak terbatas.

person Justin Ko    schedule 10.08.2013
comment
Ini bagus. Saya bertanya-tanya bagaimana cara menggunakan pemindaian dalam konteks ini. Saya memiliki kebutuhan serupa terhadap OP dan ini membantu. +1 - person Richard Jordan; 12.08.2013

Sepertinya ini tempat yang bagus untuk menggunakan #And alias.

Given I attach dog.png
  And I attach cat.png
  And I attach alphabet.doc
...

Alternatifnya, Anda dapat menggunakan tabel data untuk argumen multiline yang mudah

person Travis Kaufman    schedule 08.08.2013