Faraday: Halaman pengujian untuk dokumentasi baru

Dibuat pada 9 Jul 2019  ·  4Komentar  ·  Sumber: lostisland/faraday

Info dasar

  • Versi Faraday: master
  • Versi Ruby: 2.6.3

Deskripsi masalah

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

Langkah-langkah untuk mereproduksi

  • kunjungi situs web.
  • Klik usage
  • ikuti footer tautan berikutnya hingga Anda tidak dapat melanjutkan lebih jauh lagi (https://lostisland.github.io/faraday/usage/streaming)
  • perhatikan tidak ada pengujian dalam penggunaan :scream_cat:

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).

Semua 4 komentar

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

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

subvertallchris picture subvertallchris  ·  5Komentar

aleksb86 picture aleksb86  ·  3Komentar

ioquatix picture ioquatix  ·  4Komentar

jordansissel picture jordansissel  ·  5Komentar

asf-stripe picture asf-stripe  ·  3Komentar