Rails Insights

Dechrau gyda'r VCR Gem yn Ruby

Mae'r VCR gem yn offeryn pwerus ar gyfer datblygwyr Ruby sy'n dymuno gwneud profion eu cod yn haws ac yn fwy effeithlon. Mae'n caniatáu i chi recordio a chwarae'n ôl galwadau HTTP, gan wneud profion yn gyflymach ac yn fwy dibynadwy. Yn yr erthygl hon, byddwn yn archwilio sut i ddechrau gyda'r VCR gem, gan gynnwys gosod, cyfarwyddiadau sylfaenol, a rhai enghreifftiau defnyddiol.

Beth yw VCR?

Mae VCR yn gem Ruby sy'n caniatáu i chi recordio galwadau HTTP a'u chwarae'n ôl yn ddiweddarach. Mae hyn yn golygu y gallwch chi greu profion sy'n dibynnu ar ddata o'r we heb orfod gwneud galwadau go iawn bob tro. Mae hyn yn arbed amser ac yn lleihau'r risg o fethu â phrofion oherwydd newidiadau yn y gwasanaethau allanol.

Pam ddefnyddio VCR?

  • Cyflymder: Mae'n lleihau'r amser a dreulir ar galwadau HTTP yn ystod profion.
  • Diogelwch: Mae'n lleihau'r risg o fethu â phrofion oherwydd newidiadau yn y gwasanaethau allanol.
  • Hawdd i'w ddefnyddio: Mae'r VCR gem yn hawdd i'w integreiddio â phrofwyr Ruby fel RSpec a Minitest.
  • Cadwraeth: Mae'n caniatáu i chi gadw'r data a dderbynnir o'r galwadau HTTP, gan wneud profion yn fwy dibynadwy.

Gosod VCR

Mae gosod y VCR gem yn syml. Gallwch ei ychwanegu at eich prosiect Ruby trwy ychwanegu'r llinell ganlynol i'ch ffeil Gemfile:

gem 'vcr'

Ar ôl hynny, bydd angen i chi redeg y gorchymyn canlynol i osod y gem:

bundle install

Cyfarwyddiadau Sylfaenol

Ar ôl gosod y gem, gallwch ddechrau ei ddefnyddio yn eich profion. Dyma'r camau sylfaenol i'w dilyn:

1. Cyflwyno VCR

Mae angen i chi gyflwyno VCR yn eich ffeil brofion. Gallwch wneud hyn trwy ychwanegu'r llinell ganlynol:

require 'vcr'

2. Gosod VCR

Mae angen i chi sefydlu VCR cyn dechrau profion. Gallwch wneud hyn trwy ddefnyddio'r dull VCR.configure fel a ganlyn:

VCR.configure do |config|
  config.cassette_library_dir = 'spec/cassettes'
  config.hook_into :webmock
end

Mae'r gosodiadau uchod yn nodi lle i gadw'r cassettes (sy'n cynnwys y galwadau HTTP a gofrestrwyd) a'r dull i'w ddefnyddio ar gyfer dal galwadau HTTP.

3. Creu Cassette

Mae angen i chi greu cassette ar gyfer eich profion. Gallwch wneud hyn trwy ddefnyddio'r dull VCR.use_cassette fel a ganlyn:

VCR.use_cassette('example_cassette') do
  # Galwad HTTP yma
end

Mae'r cod yn y bloc hwn yn cael ei gofrestru yn y cassette a fydd yn cael ei chwarae'n ôl yn y dyfodol.

Enghreifftiau o Ddefnydd

Dyma enghreifftiau o sut i ddefnyddio VCR gyda RSpec a Minitest.

Defnyddio VCR gyda RSpec

Os ydych chi'n defnyddio RSpec, gallwch greu profion fel hyn:

require 'spec_helper'
require 'net/http'

RSpec.describe 'Galwad HTTP' do
  it 'dylai ddychwelyd y data cywir' do
    VCR.use_cassette('http_request') do
      response = Net::HTTP.get(URI('http://example.com'))
      expect(response).to include('Example Domain')
    end
  end
end

Yn yr enghraifft hon, bydd y galwad HTTP yn cael ei gofrestru yn y cassette 'http_request' a bydd yn cael ei chwarae'n ôl yn y dyfodol.

Defnyddio VCR gyda Minitest

Os ydych chi'n defnyddio Minitest, gallwch greu profion fel hyn:

require 'minitest/autorun'
require 'net/http'

class HttpRequestTest < Minitest::Test
  def test_http_request
    VCR.use_cassette('http_request') do
      response = Net::HTTP.get(URI('http://example.com'))
      assert_includes response, 'Example Domain'
    end
  end
end

Fel yn yr enghraifft RSpec, bydd y galwad HTTP yn cael ei gofrestru yn y cassette 'http_request'.

Gweithredu a Rheoli Cassettes

Mae VCR yn cynnig nifer o opsiynau i reoli cassettes. Gallwch ddewis a ddylid dileu cassettes hen, a gallwch hefyd newid y ffordd y caiff cassettes eu creu.

Dileu Cassettes Hen

Gallwch ddileu cassettes hen trwy ddefnyddio'r dull VCR.eject_cassette:

VCR.eject_cassette

Newid y Fformat Cassette

Gallwch newid y fformat cassette trwy ddefnyddio'r gosodiad config.cassette_serializers:

VCR.configure do |config|
  config.cassette_serializers = [:yaml, :json]
end

Casgliad

Mae VCR yn gem anhygoel sy'n gwneud profion galwadau HTTP yn llawer haws a mwy effeithlon. Trwy gofrestru galwadau HTTP a'u chwarae'n ôl, gallwch leihau'r amser a dreulir ar brofion a chynyddu dibynadwyedd eich cod. Mae'r camau a'r enghreifftiau a drafodwyd yn yr erthygl hon yn cynnig sylfaen gadarn ar gyfer dechrau gyda VCR. Peidiwch ag anghofio archwilio'r dogfennaeth swyddogol i ddysgu mwy am y nodweddion a'r gosodiadau ychwanegol sydd ar gael.

Gyda VCR, gallwch ganolbwyntio ar ddatblygu a phrofi eich cod heb boeni am galwadau HTTP go iawn. Dechreuwch ddefnyddio VCR heddiw a gwella eich profion Ruby!

Published: August 12, 2024

© 2024 RailsInsights. All rights reserved.