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

рдпрд╣ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ
рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдХрд┐рд╕реА рднреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд▓реЗрдВ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЦрд╛рддреЗ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╡рд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реИ рдЬреЛ рд╣рдорд╛рд░рд╛ рдбреЛрдореЗрди рдСрдмреНрдЬреЗрдХреНрдЯ рдмрди рдЬрд╛рддрд╛ рд╣реИред рд▓рдЧрднрдЧ рд╕рднреА рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдкрд╛рд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:
рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕рд╛рд╡рдзрд╛рди рд▓реЛрдЧреЛрдВ рдХрд╛ рдзреНрдпрд╛рди рд╣реЛрдЧрд╛ рдХрд┐ рд╕рднреА рдЖрдВрддрд░рд┐рдХ рдХреНрд╖реЗрддреНрд░ рдирд┐рдЬреА рд╣реИрдВред рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреЗ рдХреНрд╖реЗрддреНрд░ рд╕реЗ рд╕реАрдзреЗ рдорд╛рди рд╕реЗрдЯ рдХрд░рдирд╛ рдФрд░ рдкрдврд╝рдирд╛ рдмреБрд░рд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдпрд╣ рдЬрд╛рдиреЗ-рдорд╛рдиреЗ рдЧреЗрдЯрд░реНрд╕ рдФрд░ рд╕реЗрдЯрд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдерд╛рдЧрдд рд╣реИ:
public class User { private String login; private String password;
рдЕрдм, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЦреЗрддреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рд╣реИ, рдФрд░ рд╣рдо рдЙрдирдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╕реЗрдЯ рдФрд░ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдо рдХреЗрд╡рд▓ рджреЛ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдФрд░ рдЗрдирдореЗрдВ рд╕реЗ рдкрдВрджреНрд░рд╣ рдХреНрд╖реЗрддреНрд░ рд╣реЛрдиреЗ рдкрд░ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ? рд╕рдЪ рд╣реИ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд░реНрдЧ рдЕрднреВрддрдкреВрд░реНрд╡ рдЖрдХрд╛рд░ рддрдХ рдлреИрд▓рддрд╛ рд╣реИ, рдЧреЗрдЯрд░реНрд╕ рдФрд░ рдмрд╕рдиреЗ рд╡рд╛рд▓реЛрдВ рдХреА рдЕрдВрддрд╣реАрди рдХреЙрдкреА рдкреЗрд╕реНрдЯ рдХреЗ рдХрд╛рд░рдгред рд╣рдо рдЗрд╕рд╕реЗ рдХреИрд╕реЗ рдирд┐рдкрдЯреЗрдВрдЧреЗ?
рдореИрдЬрд┐рдХ рд▓реЛрдмреЛрдХ
рдпрд╣ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдВ
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд▓реЛрдореНрдмреЛрдХ рдмрдЪрд╛рд╡ рдореЗрдВ рдЖрддрд╛ рд╣реИ - рдПрдХ рд▓реЛрдХрдкреНрд░рд┐рдп рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЬреЛ рд╣рдореЗрдВ рдХрдИ рдмрд╛рд░ рдХреЛрдб рдХреЛ рдХрдо рдХрд░рдиреЗ, рдХреЙрдкреА / рдкреЗрд╕реНрдЯ рджреБрдЦ рд╕реЗ рдмрдЪрдиреЗ рдФрд░ рдбреЗрдЯрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдореЗрдВ рд▓рдЧрдиреЗ рд╡рд╛рд▓реЗ рд╕рдордп рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдХреБрдЫ рдЙрдкрдпреЛрдЧреА рд▓рд┐рдВрдХ:
рд╡рд╣ рдХреНрдпрд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ? рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╡рд░реНрдЧ рдХреЗ рд╕рднреА рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЧреЗрдЯрд░реНрд╕ рдФрд░ рд╕реЗрдЯрд░ рдмрдирд╛рддрд╛ рд╣реИ, рдЗрд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдПрдиреЛрдЯреЗрд╢рди рдЕрд╕рд╛рдЗрди рдХрд░рдХреЗ:
import lombok.Getter; import lombok.Setter;
рд╕рд░рд▓, рддреЗрдЬ, рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдорд╛рд░рд╛ рдХреЛрдб рдЕрдзрд┐рдХ рдкрдардиреАрдп рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдХрдХреНрд╖рд╛рдПрдВ рдЕрдзрд┐рдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╣реЛрддреА рд╣реИрдВ, рдФрд░ рд╡рд┐рдХрд╛рд╕ рддреЗрдЬреА рд╕реЗ рд╣реЛрддрд╛ рд╣реИред
рдЯреЗрд╕реНрдЯ рдореЗрдВ рдЖрд╡реЗрджрди рдХрд░реЗрдВ
рдПрдХ рдЕрдЪреНрдЫрд╛ рдкрд░реАрдХреНрд╖рдг рдПрдХ рдкрд░реАрдХреНрд╖рдг рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдбреЗрдЯрд╛, рдкрд░реАрдХреНрд╖рдг рддрд░реНрдХ рдФрд░ рдЗрд╕рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИредрдЖрдЗрдП рд╣рдорд╛рд░реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдореЗрдВ рд▓реЙрдЧ рдЗрди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рд╣рдо рдкрд░реАрдХреНрд╖рдг рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд░реНрдЧ рдмрдирд╛рддреЗ рд╣реИрдВ, рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдХ рдирдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде "рднрд░" рджреЗрддреЗ рд╣реИрдВ:
рд╣рдо рд▓реЙрдЧрд┐рди рдкреГрд╖реНрда рдХреЗ рдореЙрдбрд▓ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ:
public class LoginPage {
рдпрд╣ рдХреЗрд╡рд▓ рдкрд░реАрдХреНрд╖рдг рд╡рд░реНрдЧ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИ:
public class LoginTest { @Test public void loginAsDefaultUser() {
рд╣реЛ рдЧрдпрд╛! рдЖрдк рдорд╣рд╛рди рд╣реИрдВ!
рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рджреЗрдирд╛
рдлрд╛рдЗрдирд▓ рдореЗрдВ, рд╣рдореЗрдВ рддрд░реНрдХ, рдбреЗрдЯрд╛ рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕реНрдкрд╖реНрдЯ рдкреГрдердХреНрдХрд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рдл-
рд╕реБрдерд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдорд┐рд▓рддреА рд╣реИред рд▓реЛрдореНрдмреЛрдХ рдЖрдкрдХреЛ рдХреЛрдб рджреЛрд╣рд░рд╛рд╡ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ, рдбреЛрдореЗрди рдСрдмреНрдЬреЗрдХреНрдЯ рдкреЗрдЬ рдСрдмреНрдЬреЗрдХреНрдЯ рджрд░реНрд╢рди рдХреЗ рд╕рд╛рде рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдлрд┐рдЯ рдмреИрдарддрд╛ рд╣реИ, рдФрд░ рдХреЛрдб рд╕рдорд░реНрдерди рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЖрдирдВрдж рдмрди рдЬрд╛рддрд╛ рд╣реИред
рд╡рд╣рд╛рдБ minuses рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП?- Immutabelnostред рдпрд╛ рдмрд▓реНрдХрд┐, рдЗрд╕рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ред рдЗрд╕рдореЗрдВ, рд▓реЛрдореНрдмреЛрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореБрдЦреНрдп рдкреНрд░рддрд┐рдпреЛрдЧреА - рдмрд┐рд▓реНрдбрд░ ( рд╣реИрдмреЗ рдкрд░ рд▓реЗрдЦ ) рдХреЛ рдЦреЛ рджреЗрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рдЕрдзрд┐рдХ "рд╕рд╛рдл" рд╣реИ, рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдФрд░ рд╕реМрдВрджрд░реНрдпрд╡рд╛рджреА рд░реВрдк рд╕реЗ рдордирднрд╛рд╡рди, рдмрд┐рд▓реНрдбрд░ рд╡рд░реНрдЧ рдореЗрдВ рдЕрдВрддрд╣реАрди рд╢реНрд░реГрдВрдЦрд▓рд╛ рдФрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреНрд▓рд╛рд╕ рдореЗрдВ рддрд░реАрдХреЛрдВ рдХреЗ рдвреЗрд░ рдХреА рддреБрд▓рдирд╛ рдореЗрдВред
- рдЬрд╣рд╛рдВ рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИ рд╡рд╣рд╛рдВ рдЬрдЯрд┐рд▓рддрд╛ рдмрдврд╝рд╛рдПрдВред рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдЕрдиреБрд╕реНрдорд╛рд░рдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрддрдирд╛ рдорд╛рдЗрдирд╕ рдирд╣реАрдВред рдХреЛрдИ рднреА рджреГрд╖реНрдЯрд┐рдХреЛрдг рдпрд╛ рдкреИрдЯрд░реНрди рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рд╣реИ рдФрд░ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЖрдкрдХреЛ рдпреВрдирд┐рдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдбреЗрдЯрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП рдЬреЛ рдХреЗрд╡рд▓ 2 + 2 = 4 рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИред
рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд-рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред рдореБрдЭреЗ рд╕рдореАрдХреНрд╖рд╛рдУрдВ рдФрд░ рдЖрд▓реЛрдЪрдирд╛рдУрдВ рдкрд░ рдЦреБрд╢реА рд╣реЛрдЧреАред
PS рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдмрддрд╛рдПрдВ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рдХрд╛рдо рдореЗрдВ рдХреНрдпрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдкрдврд╝рдирд╛ рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдЧрд╛ред