Tidak ada dokumentasi tentang pengujian dengan Faraday. Tempat saya bekerja Ruby on Rails diperkenalkan karena keren. Sedikit pemikiran diberikan untuk menguji kasus merah. Saya ingin menyumbangkan beberapa dokumentasi untuk membantu orang lain
usage
Terima kasih telah mengangkat ini. Sebagai tanggapan, saya telah memposting PR untuk memasukkan uji langsung/unit dan contoh rspec menggunakan adaptor Uji Faraday: #1000. Ini adalah cara yang disarankan untuk menguji Faraday, alih-alih perpustakaan ganda pengujian eksternal (rspec, mocha, webmock, dll).
Saya perhatikan tidak ada gunanya menguji hal-hal seperti batas waktu, kesalahan koneksi, dll. Apakah subjek tidak disukai, atau hanya cara PR #998 menggunakan.
Saya kira saya tidak mendapatkan sintaksnya
Saya kira saya tidak mendapatkan sintaksnya
Oof, mungkin saya harus mengunjungi kembali dokumen tes Faraday lagi :/
Sintaks di #1000 menggunakan instance Faraday::Adapter::Test::Stubs
, objek rintisan eksklusif untuk menguji siklus permintaan/tanggapan faraday. Anda dapat menggunakannya untuk menyiapkan tanggapan tiruan terhadap permintaan http dalam pengujian tertentu.
it 'parses name' do
# this block yields a rack response: an array with:
# response status, http header hash, and response body
stubs.get('/ebi') do |env|
[
200,
{ 'Content-Type': 'application/javascript' },
'{"name": "shrimp"}'
]
end
expect(client.sushi('ebi')).to eq('shrimp')
stubs.verify_stubbed_calls
end
Saya minta maaf, saya jelas tidak membaca masalah Anda dengan cukup teliti. Saya benar-benar merindukan bahwa Anda secara khusus ingin menguji pengecualian. Tes seperti ini juga berfungsi (yang akan saya tambahkan ke #1000):
it 'handles exception' do
stubs.get('/ebi') do
raise Faraday::ConnectionFailed, nil
end
expect { client.sushi('ebi') }.to raise_error(Faraday::ConnectionFailed)
stubs.verify_stubbed_calls
end
Saya lebih suka implementasi ganda pengujian khusus seperti ini daripada pendekatan mengejek yang lebih umum, karena mereka masih melalui seluruh alur kerja permintaan Faraday. Jika pengembang ingin menggunakan tiruan RSpec, maka mereka akan lebih baik dilayani dengan dokumentasi RSpec yang sangat baik.
Dikirim dengan #1000
Komentar yang paling membantu
Terima kasih telah mengangkat ini. Sebagai tanggapan, saya telah memposting PR untuk memasukkan uji langsung/unit dan contoh rspec menggunakan adaptor Uji Faraday: #1000. Ini adalah cara yang disarankan untuk menguji Faraday, alih-alih perpustakaan ganda pengujian eksternal (rspec, mocha, webmock, dll).