рдирдорд╕реНрддреЗ,
рдХреНрдпрд╛ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдПрдХрд╛рдзрд┐рдХ рдХреИрд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ? рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдпрд╣ рдПрдХ рд╕реБрд╡рд┐рдзрд╛ рдЕрдиреБрд░реЛрдз рд╣реЛрдЧрд╛ред
рдзрдиреНрдпрд╡рд╛рдж,
рд░реЛрдмрд┐рди
рдЖрдк рдХреИрд╕реЗрдЯ рдШреЛрдВрд╕рд▓рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
VCR.use_cassette("outer") do
make_some_http_request
VCR.use_cassette("inner_1") do
make_some_other_http_request
VCR.use_cassette("inner_2") do
make_yet_another_request
end
end
end
рдЬрдм рдХреЛрдИ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рд╡реАрд╕реАрдЖрд░ рдлрд┐рд░ рд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдорд┐рд▓рд╛рди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ HTTP рдЗрдВрдЯрд░реИрдХреНрд╢рди рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдВрддрд░рддрдо рдХреИрд╕реЗрдЯ рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдХреИрд╕реЗрдЯ рд╕реНрдЯреИрдХ рдХреА рдЦреЛрдЬ рдХрд░реЗрдЧрд╛ред рдпрд╣ рдЕрдВрддрд░рддрдо рдХреИрд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рдирдП рдЕрдиреБрд░реЛрдз рд░рд┐рдХреЙрд░реНрдб рдХрд░реЗрдЧрд╛ред
рдХреНрдпрд╛ рдпрд╣ рдЖрдкрдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИ?
рд╣рд╛рдБ, рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдореЗрд░реА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИред рдореИрдВ рдЕрднреА рднреА рдЗрд╕рдХреЗ рд▓рд┐рдП rspec рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛, рдЬреИрд╕реЗ vcr: {cassette_names: %w(fb-login linkedin-login)}
ред
рд╡реИрд╕реЗ рднреА, рдореЗрд░реЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИ рд╣реИред рдзрдиреНрдпрд╡рд╛рдж!
рдореИрдВ рдЕрднреА рднреА рдЗрд╕рдХреЗ рд▓рд┐рдП rspec рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛, рдЬреИрд╕реЗ
vcr: {cassette_names: %w(fb-login linkedin-login)}
ред
рдореИрдВ рдЙрд╕ рдПрдкреАрдЖрдИ рдХреА рдЕрдкреАрд▓ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЬрдм рдПрдХ рдирдпрд╛ HTTP рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдХреИрд╕реЗ рдкрддрд╛ рдЪрд▓реЗрдЧрд╛ рдХрд┐ рдЗрд╕реЗ рдХрд┐рд╕ рдХреИрд╕реЗрдЯ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рдХрд░рдирд╛ рд╣реИ?
рд╕рдореНрдореЗрд▓рди рджреНрд╡рд╛рд░рд╛ рдЕрдВрддрд┐рдо рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЬреИрд╕реЗ рдиреЗрд╕реНрдЯрд┐рдВрдЧ use_cassette рдХрдиреНрд╡реЗрдВрд╢рди рджреНрд╡рд╛рд░рд╛ рд╕рдмрд╕реЗ рдЖрдВрддрд░рд┐рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдореИрдВ рдЗрд╕реЗ рдЖрдкрдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдЖрд╕рдкрд╛рд╕ VCR.use_cassette
рдХреЙрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдордЭреВрдВрдЧрд╛ред
рд╕рдореНрдореЗрд▓рди рджреНрд╡рд╛рд░рд╛ рдЕрдВрддрд┐рдо рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЬреИрд╕реЗ рдиреЗрд╕реНрдЯрд┐рдВрдЧ use_cassette рдХрдиреНрд╡реЗрдВрд╢рди рджреНрд╡рд╛рд░рд╛ рд╕рдмрд╕реЗ рдЖрдВрддрд░рд┐рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдореИрдВ рдЗрд╕реЗ рдЖрдкрдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдЖрд╕рдкрд╛рд╕ VCR.use_cassette рдХреЙрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдордЭреВрдВрдЧрд╛ред
рд▓реЗрдХрд┐рди рдлрд┐рд░ рдкрд╣рд▓реА рдХреИрд╕реЗрдЯ рдореЗрдВ рдХреБрдЫ рднреА рд░рд┐рдХреЙрд░реНрдб рдХреИрд╕реЗ рд╣реЛрдЧрд╛?
рд╕реНрдкрд╖реНрдЯ рдШреЛрдВрд╕рд▓реЗ рдХреЗ рд╢рд┐рдХрд╛рд░ рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдЙрди рдмрд┐рдВрджреБрдУрдВ рдкрд░ рдЕрдиреБрд░реЛрдз рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдХреЗрд╡рд▓ рдмрд╛рд╣рд░реА рдПрдХ рдбрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ (рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЗрд╕реЗ рдЙрд╕ рдХреИрд╕реЗрдЯ рдореЗрдВ рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ):
VCR.use_cassette("outer") do
# <- requests here get recorded to outer
VCR.use_cassette("inner") do
# <- requests here get recorded to inner
end
# <- requests here get recorded to outer as well
end
рдпрджрд┐ рд╡реАрд╕реАрдЖрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рджреЛ рдХреИрд╕реЗрдЯ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдХреЛрдИ рднреА рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХрд╛ рдореМрдХрд╛ рджреЗрддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдХреЗрд╡рд▓ рдкрд╣рд▓рд╛ рдбрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ ... рддреЛ рдЗрд╕рдореЗрдВ рдХреБрдЫ рднреА рд░рд┐рдХреЙрд░реНрдб рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЗрд╕рдХрд╛ рдХрднреА рднреА рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдХрд╛рдлреА рдЙрдЪрд┐рддред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рдЖрддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рдореИрдВ рдЖрдорддреМрд░ рдкрд░ record: :none
рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдХреНрдпрд╛ рд░рд┐рдХреЙрд░реНрдб рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рд╡реАрд╕реАрдЖрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдЕрдиреНрдп рддрд░реАрдХреЗ рд╣реИрдВ рдЬреЛ рдЕрдзрд┐рдХ рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рд╣реЛрдВрдЧреЗред рд╕рдордп рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╢реБрдХреНрд░рд┐рдпрд╛ :)
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдЖрдк рдХреИрд╕реЗрдЯ рдШреЛрдВрд╕рд▓рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
рдЬрдм рдХреЛрдИ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рд╡реАрд╕реАрдЖрд░ рдлрд┐рд░ рд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдорд┐рд▓рд╛рди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ HTTP рдЗрдВрдЯрд░реИрдХреНрд╢рди рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдВрддрд░рддрдо рдХреИрд╕реЗрдЯ рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдХреИрд╕реЗрдЯ рд╕реНрдЯреИрдХ рдХреА рдЦреЛрдЬ рдХрд░реЗрдЧрд╛ред рдпрд╣ рдЕрдВрддрд░рддрдо рдХреИрд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рдирдП рдЕрдиреБрд░реЛрдз рд░рд┐рдХреЙрд░реНрдб рдХрд░реЗрдЧрд╛ред
рдХреНрдпрд╛ рдпрд╣ рдЖрдкрдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИ?