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.
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.
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
Ar ôl gosod y gem, gallwch ddechrau ei ddefnyddio yn eich profion. Dyma'r camau sylfaenol i'w dilyn:
Mae angen i chi gyflwyno VCR yn eich ffeil brofion. Gallwch wneud hyn trwy ychwanegu'r llinell ganlynol:
require '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.
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.
Dyma enghreifftiau o sut i ddefnyddio VCR gyda RSpec a Minitest.
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.
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'.
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.
Gallwch ddileu cassettes hen trwy ddefnyddio'r dull VCR.eject_cassette
:
VCR.eject_cassette
Gallwch newid y fformat cassette trwy ddefnyddio'r gosodiad config.cassette_serializers
:
VCR.configure do |config| config.cassette_serializers = [:yaml, :json] end
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!
© 2024 RailsInsights. All rights reserved.