рдЙрдВрдЧрд▓рд┐рдпреЛрдВ рдкрд░ рд░реЗрд▓ рдХрд╛ рдкрд░рд┐рдЪрдп (рд░реЗрд▓ + рдЖрд░рдкреАрдИрд╕реА)

рдореЗрд░реЗ рд▓рд┐рдП рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдмрд▓реНрдХрд┐ рдПрдХ рдмрд╣реБрдд рд╣реА рд╡рд┐рдХрд╕рд┐рдд рдбреЗрд╡рд▓рдкрд░, рдЯреАрдбреАрдбреА рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрдард┐рди рдФрд░ рдХрднреА-рдХрднреА рдХрд╛рдВрдЯреЗрджрд╛рд░ рдереАред

рдореИрдВ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдХрд░реВрдВрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рдХреА рджрд╣рд▓реАрдЬ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЗрд╡рд▓ рдмреИрдардХрд░ рдФрд░ RoR рдкрд░ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╣реИред рдореИрдВ рдХреБрдЫ рдХрд░реВрдВрдЧрд╛, рдЬреИрд╕рд╛ рдХрд┐ рдкрд┐рдВрдбреЛрд╕ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рд╣рд╛рдЗрд▓рд╛рдЗрдЯреНрд╕ред
рдЫрд╡рд┐

рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ, TDD рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП:



1. рдПрдХ рдЧрд┐рд░рддреЗ рдкрд░реАрдХреНрд╖рдг рдХреЛ рд▓рд┐рдЦрд╛, rspec рдЪрд▓рд╛рдИ, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд┐рдпрд╛ рдХрд┐ рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдлрд▓ (рд▓рд╛рд▓)

2. рд╣рдордиреЗ рдХреЛрдб рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рд▓рд┐рдЦрд╛, rspec рдЪрд▓рд╛рдИ, рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд┐рдпрд╛ рдХрд┐ рдкрд░реАрдХреНрд╖рдг рдкрд╛рд╕ (рд╣рд░рд╛)

3. Refactored, рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ рдФрд░ рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдлрд▓ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред

4. рдЙрддреНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдХреЛрдб рднреЗрдЬрд╛ рдЧрдпрд╛



рдкрд░реАрдХреНрд╖рдг рдЕрдкрдиреЗ рдЖрдк рд╣реА рдХрд╛рдлреА рдзреАрд░реЗ-рдзреАрд░реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд▓реЛрдЧ рдЪрд╛рд▓рдмрд╛рдЬреА рдХрд░рддреЗ рд╣реИрдВ: рд╡реЗ рд╕реНрдкреЙрд░реНрдХ рдбрд╛рд▓рддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХреЛ рдореЗрдореЛрд░реА рдореЗрдВ рд░рдЦрддрд╛ рд╣реИ рдФрд░ рд╣рд░ рдмрд╛рд░ рд░реЗрд▓ рд╢реБрд░реВ рд╣реЛрдиреЗ рдХреЗ рд╕рдордп рдХреЛ рдмрдЪрд╛рддрд╛ рд╣реИред рдкреНрд░рд╛рд░рдВрдн рд╕рдордп (рдореЗрд░реЗ рдкрд╛рд╕ 7-10 рд╕реЗрдХрдВрдб рд╣реИ) рджреНрд╡рд╛рд░рд╛ рдкрд░реАрдХреНрд╖рдг рд╕рдордп рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреА рдЧрд╛рд░рдВрдЯреА рд╣реИред
рдЕрджреНрдпрддрди рдХрд░реЗрдВ: рдЬреИрд╕рд╛ рдХрд┐ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдУрд╣, рдорд╣рд┐рдорд╛ рд╕реЗ рд╣реЗрдмрд░) рдпрд╣ рдЬрд╝реАрдЙрд╕ рдкрд░ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ ред

рдЕрдЧрд▓рд╛ред рдСрдЯреЛрдЯреЗрд╕реНрдЯ рдХреНрдпрд╛ рдХрд░рддрд╛ рдерд╛ рдЕрдм рдЧрд╛рд░реНрдб рдХреЗ рд╕рд╛рде рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлреИрд╢рдиреЗрдмрд▓ рд╣реИ ред рд▓рдмреНрдмреЛрд▓реБрдЖрдм рдпрд╣ рд╣реИ рдХрд┐ рдлрд╝рд╛рдЗрд▓ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдирд╛ рдФрд░ рдХреЗрд╡рд▓ рдЙрди рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдЪрд▓рд╛рдирд╛ рдЬреЛ рдЗрд╕ рдкрд░рд┐рд╡рд░реНрддрди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВ, рдЬреЛ рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдкрд░реАрдХреНрд╖рдг рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЧрддрд┐ рджреЗрдЧрд╛ред рдХрд╛рдлреА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ, рдХреЗрд╡рд▓ рд╕рд┐рд╕реНрдЯрдо рд╣рдореЗрд╢рд╛ рдЗрди рдмрд╣реБрдд рдмрджрд▓рд╛рд╡реЛрдВ рдХреЛ рдирд╣реАрдВ рдкрдХрдбрд╝рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрд╛рд░рдЦрд╛рдиреЗ рдореЗрдВ рдмрджрд▓рд╛рд╡ рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдЗрд╕рдХреЗ рд▓рд┐рдП рдореИрдВ рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдореЙрдбрд▓ рдХрд▓реНрдкрдирд╛ рдлрд╝рд╛рдЗрд▓ рдФрд░, рддрд░рд╣ рддрд░рд╣ рд╕реЗ рдЦреАрдВрдЪ рд╕рдХрддрд╛ рд╣реВрдВред

рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рдкрд░реАрдХреНрд╖рдг рдбреЗрдЯрд╛ рд╕реЗрдЯ рдХреЛ YAML рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдЗрд╕реЗ рдЬреБрдбрд╝рдирд╛рд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рдерд╛ред рдкреНрд░рддреНрдпреЗрдХ рдкрд░реАрдХреНрд╖рдг рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрджреНрдпрдкрд┐ рд╡реЗ рдЪреБрдирд┐рдВрджрд╛ рд░реВрдк рд╕реЗ рд▓реЛрдб рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕ рддрд░рд╣ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдзреАрдореА рдФрд░ рд╕рдВрд╕рд╛рдзрди-рдЧрд╣рди рдереАред рдерд┐рдВрдХрдмреЙрдЯ рдХреЗ рд▓реЛрдЧреЛрдВ рдиреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЗрд╕ рддрдереНрдп рд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдХрд┐ рдЬреБрдбрд╝рдирд╛рд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рдЙрддреНрдкрдиреНрди рд╣реЛрдиреЗ рд▓рдЧреЗ рдФрд░ рдХрд╛рд░рдЦрд╛рдиреЗ рдХрд╣рд▓рд╛рдПред рдлреИрдХреНрдЯреНрд░рд┐рдпрд╛рдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рдлреА рддреЗрдЬ рд╣реИрдВ рдФрд░ рдЖрдкрдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕рд╣рдпреЛрдЧреА рдЙрджрд╛рд╣рд░рдг, рдЪрд░ рдбреЗрдЯрд╛ рд╕реЗрдЯ (рдЕрдиреБрдХреНрд░рдо) рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдИрдореЗрд▓ рдФрд░ рдЕрдиреНрдп рд╢рд╛рдВрдд рд╕рд╛рдорд╛рдиред рдлреИрдХреНрдЯреНрд░реАрдЧрд░реНрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрднреА рднреА рдлреИрд╢рдиреЗрдмрд▓ рд╣реИред

рдЗрди рд╕рднреА рддрдХрдиреАрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫреА рдлрд╝рд╛рдЗрд▓ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдХреНрдпрд╛ рд╕рдордп рдкрд░, рдпрджрд┐ рдпрд╣ рд╕реНрдЯреИрдХрдлрд╝реНрд▓реЛ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдерд╛, рддреЛ рдореБрдЭреЗ TDD рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдирд┐рд░рд╛рд╢рд╛ рд╣реЛрдЧреА:

ex: stackoverflow.com/questions/8303491/how-do-i-make-sure-the-helpers-and-models-reload-in-rspec-when-im-use-spork

рдЦреБрдж рдХреЛ рдкрд░рдЦ рд░рд╣рд╛ рд╣реИ



рдЕрдм RSpec рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдлреИрд╢рдиреЗрдмрд▓ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЯреЗрд╕реНрдЯ :: рдпреВрдирд┐рдЯ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдФрд░ рд╡рд░реНрдгрдирд╛рддреНрдордХ рд╣реИ, рдЬреЛ рд░реЗрд▓ рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИред Rspec рдореЗрдВ рдЯреЗрд╕реНрдЯ рдХреЛ рд╕реНрдкреЗрдХреНрд╕ (рд╢рдмреНрдж рд╡рд┐рдирд┐рд░реНрджреЗрд╢рди рд╕реЗ) рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд░реЗрд▓ рдкрд░рд┐рдХреНрд╖рдг рднреА рдЕрдм rspec рдореЗрдВ рдЪрд▓рд╛ рдЧрдпрд╛ рд╣реИ, рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ред рд╕рдмрд╕реЗ рдлреИрд╢рдиреЗрдмрд▓ рдмрд╛рдд рдорд╛рдирд╡ рднрд╛рд╖рд╛ рдХреЗ рдХрд░реАрдм рдЬрд╛рдирд╛ рд╣реИ, рддрд╛рдХрд┐ рдкрд░реАрдХреНрд╖рдг рдореЗрдЯрд╛ рд╡рд┐рд╡рд░рдгреЛрдВ рдХреА рддрд░рд╣ рд╣реЛрдВ, рдЬреИрд╕реЗ рдХрд┐ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдордЭрд╛рддреЗ рд╣реБрдП рдХрд┐ рдХреЛрдб рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдкрд░реАрдХреНрд╖рдг рдХрд╛ рдкрд╛рда рдЬрд┐рддрдирд╛ рдЫреЛрдЯрд╛ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдЙрддрдирд╛ рд╣реА рдЕрдзрд┐рдХ рдЕрднрд┐рд╡реНрдпрдВрдЬрдХ рд╣реЛрддрд╛ рд╣реИ, рдмреЗрд╣рддрд░ рд╣реИред рдЗрд╕ рд╕рдВрдмрдВрдз рдореЗрдВ, рдЦреАрд░рд╛ (рдХрдХрдбрд╝реА) рдореЗрд░реЗ рдмрд╣реБрдд рдХрд░реАрдм рдерд╛ред рдЕрдм rspec рдиреЗ рдХрдХрдбрд╝реА рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдереЛрдбрд╝рд╛ рдХрдо рдмрджрд▓рдирд╛ рд╕реАрдЦ рд▓рд┐рдпрд╛ рд╣реИред

рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рд▓реЛрдЧ рддреАрди рддрд░реАрдХреЛрдВ рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд░рд╣реЗ рд╣реИрдВред

1. рдореЙрдбрд▓ рдкрд░реАрдХреНрд╖рдг, рдпрд╛ рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг


рдпрд╣рд╛рдВ рд╣рдо рдореЙрдбрд▓ рдореЗрдВ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреА рд╢реБрджреНрдзрддрд╛, рдорд╛рдиреНрдпрддрд╛рдУрдВ рдХреА рд╡реИрдзрддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВред

validate_presence_of (: рдореЙрдбрд▓) rspec рд╕реЗрдирд╛рдиреА рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рдЖрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдХрдВрдзрд╛ рд▓рдЧрд╛рдирд╛ рдФрд░ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛

gem "shoulda-matchers"

рдФрд░ рдЖрдЧреЗ spec_helper.rb рдореЗрдВ

require 'shoulda-matchers'

2. рдирд┐рдпрдВрддреНрд░рдХ рдкрд░реАрдХреНрд╖рдг, рдпрд╛ рдЬреИрд╕рд╛ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рднреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХрд╛рд░реНрдпрд╛рддреНрдордХ


рдЪреАрдЬреЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рддреА рд╣реИ рддрд╛рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╡рд╕реНрддреБ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╣реЛ рдпрд╛ 'рдирдпрд╛' рдЗрддреНрдпрд╛рджрд┐ рдХрд╛ рдкреНрд░рддрд┐рдкрд╛рджрди рд╣реЛ

рдПрдХ рдирдореВрдирд╛ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдПрдХ рдирд┐рдпрдВрддреНрд░рдХ рдХреЙрд▓ рд╢рд╛рдорд┐рд▓ рд╣реЛрдЧреА

post :create, mymodel: param1

рдФрд░ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░ рд░рд╣рд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдирд┐рдпрдВрддреНрд░рдХ рд╡рд┐рдзрд┐ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рдЬрд╛рдиреЗ рдЪрд╛рд╣рд┐рдП

assigns(:mymodel){ should == MyModel.last }

рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдирдпрд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд╣рдЬ рдирд╣реАрдВ рд╣реИред

response.should render_template('new')

3. рдПрдХреАрдХрд░рдг рдкрд░реАрдХреНрд╖рдг, рдХрд╣рд╛рдирд┐рдпреЛрдВ рдореЗрдВ рд╕реБрдзрд╛рд░


BDD рдХрд╛ рдЗрддрд┐рд╣рд╛рд╕ рдпрд╣ рд╣реИ рдХрд┐ рдЧреНрд░рд╛рд╣рдХ рдХреА рднрд╛рд╖рд╛ рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдореЗрдВ рдЧреНрд░рд╛рд╣рдХ рдХреА рдирдЬрд╝рд░ рдореЗрдВ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдХреИрд╕реА рд╣реИред рдЖрдорддреМрд░ рдкрд░, рдПрдХ рдХрд╣рд╛рдиреА рдПрдХ рд╡рд░реНрдгрди рдФрд░ рдПрдХ рд╣реА рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рд╣реИред

рдпрд╣ рдПрдХ рдХрдХрдбрд╝реА рдкреИрд░рд╛рдлреЗрд░реЗрд╕ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдмреЗрд╕ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдореЗрдВ rspec рдПрдХ рдХрд▓реНрдкрдирд╛ / рдЕрдиреБрд░реЛрдз / рдлрд╝реЛрд▓реНрдбрд░ рднреА рдмрдирд╛рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдПрдХреАрдХрд░рдг рдкрд░реАрдХреНрд╖рдг рд░рдЦреЗ рдЬрд╛рддреЗ рд╣реИрдВред

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрдХрдбрд╝реА рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ, рдпрд╣ рдЗрд╕ рдмрд╛рдд рдХреА рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдХрд┐ "рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ" рдкрд░реАрдХреНрд╖рдг рдкрд░ рд╣рд░ рдирдЬрд╝рд░ рдХреЗ рд╕рд╛рде, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ "рдХреНрдпреЛрдВ" рдХрд╣рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЛрдВ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдореБрдЦреНрдп рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ "рдХреНрдпреЛрдВ" рдПрдХ рд╣реА рд░рд╣рддрд╛ рд╣реИред

рдЗрд╕рд▓рд┐рдП, рдПрдХреАрдХрд░рдг рдкрд░реАрдХреНрд╖рдг рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдПрдореБрд▓реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдЪрд▓рд╛рддрд╛ рд╣реИред

рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░, рдЗрд╕ рддрд░рд╣ рдХреЗ рдмрдХрд╡рд╛рд╕ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдпрджрд┐ рдордгрд┐ рдХреИрдкреАрдмрд╛рд░рд╛ рдпрд╛ рд╡реЗрдмреНрд░реИрдЯ рдЬреБрдбрд╝реЗ рд╣реБрдП рд╣реИрдВ, рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЕрдиреБрдХрд░рдг рдХрд░рддреЗ рд╣реИрдВ

рдкрд░реАрдХреНрд╖рдг рдЖрдорддреМрд░ рдкрд░ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:


рдЗрд╕ рдХреЛрдб рдХреА рддрд░рд╣ рдХреБрдЫ

visit services_path

page.should have_content(" ")


рдпрд╛рддреНрд░рд╛ рдФрд░ has_content рд╣рдо capybara heme рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред

рдХреНрдпрд╛ рдФрд░ рдХреИрд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ред рдЖрдкрдХреЛ рд╕реАрдорд╛ рдорд╛рдорд▓реЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдХреЛрдб рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдирд╛рдирд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рджреЛ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд╕рд╛рде рдЬрд╛рдВрдЪреЗрдВ:

1. рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╣рдо рдЬрд╛рдВрдЪрддреЗ рд╣реИрдВ рдХрд┐ рд░рд┐рдХреЙрд░реНрдб рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ рд╣реИред

2. рдЕрдЧрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдирд╣реАрдВ рдмрдирд╛ рд╣реИ рддреЛ рд╣рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИред

рд╣рд░ рдХреЛрдИ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд░реАрдХреНрд╖рдг рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рд░ рдХрд┐рд╕реА рдиреЗ рдЬреЛ рдЕрднреА рддрдХ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдореИрдВ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВред

Source: https://habr.com/ru/post/In163597/


All Articles