TDDs рдХреА рдкрд░рд┐рдХреНрд░рдорд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрдИ рдЫрджреНрдо-рдЖрдИрдбреА рдХреЗ рдмреАрдЪ, рдЯреЗрд╕реНрдЯ рдбрдмрд▓реНрд╕ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЕрд╡рд╣реЗрд▓рдирд╛ рд╣реИ, рдХрдо рд╕реЗ рдХрдо рдЙрдирдХреЗ рд╣рд╛рд╕реНрдпрд╛рд╕реНрдкрдж рдирд╛рдореЛрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реИред
рд╡реЗ рдЙрдиреНрд╣реЗрдВ рдХрд┐рд╕реА рднреА рддрд░рд╣ рдЧрд░реНрд╡ рд╕реЗ рдХрд╣рддреЗ рд╣реИрдВ, рдЕрдиреНрдпрдерд╛ рдореЛрдХ, рдареВрдВрда, рдирдХрд▓реА - рдПрдХ рднрд╛рд╡рдирд╛ рдЬреЛ рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдЦреЛрддреЗ рд╣реИрдВ рдЕрдЧрд░ рд╣рдо рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред ("рдПрдХреАрдХрд░рдг рдкрд░реАрдХреНрд╖рдг" рдФрд░ "рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдирд┐рд░реНрднрд░рддрд╛" рдХреЗ рд╡рд┐рдкрд░реАрдд)ред
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЖрдк рджреГрд╖реНрдЯрд┐рдХреЛрдг рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдВрдд рдореЗрдВ, рдореЙрдХ рди рдХреЗрд╡рд▓ рдЗрддрдирд╛ рдФрд░ рди рд╣реА рдирд┐рд░реНрднрд░ рдШрдЯрдХ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИред рдФрд░ "рд╡рд╛рд╕реНрддрд╡рд┐рдХ" рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╡рд░реНрддрдорд╛рди рд╣реИ, рд╕рдВрднрд╡рддрдГ рд╣рдорд╛рд░реЗ рдЧрд░реНрд╡ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХрд╛ рдЧрд▓рдд рдЕрд╡рддрд╛рд░ рд╣реИред
рдЗрд╕ рдЕрд░реНрде рдореЗрдВ, рд╣рд░ рдмрд╛рд░ рдЬрдм рд╣рдо рд▓рд┐рдЦрддреЗ рд╣реИрдВ
when(mockDependency.method(inputValue)).thenReturn(returnValue)
,
рд╣рдо рдХреБрдЫ рдШрдЯрдХ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬреАрдХрд░рдг рдХрд░рддреЗ рд╣реИрдВред
рдЗрд╕рд▓рд┐рдП рдХрдИ рдкрд░рд┐рдгрд╛рдо рд╣реИрдВред
рдореЙрдХ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХрд╕реМрдЯреА рдкрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝реЗ рд╣реБрдП рд╣реИрдВ, рджреЛрдиреЛрдВ рд╢рдмреНрджрд╛рд╡рд▓реА рдФрд░ рдЕрд░реНрде рдореЗрдВред рд╡рд╣ рдФрд░ рджреВрд╕рд░рд╛ рджреЛрдиреЛрдВ рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдФрд░ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдкрд░ рдирд╣реАрдВред
рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдореЙрдХрд┐рдЯреЛ рдЬреИрд╕реА рд░реВрдкрд░реЗрдЦрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдПрдХ рдШрдЯрдХ рдХреЗ рдЧреАрд▓рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрдпрд╛рди рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рд╡рд┐рдЪрд▓рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╣реИрдВ, рдЬреЛ рдЧреНрд░рд╛рд╣рдХ рд╡рд░реНрдЧреЛрдВ рдХреЗ рдмреАрдЪ рдмрд┐рдЦрд░реЗ рд╣реБрдП рд╣реИрдВ, рдФрд░ рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд░рдЦрдирд╛ рдХрдард┐рди рд╣реИред рдЗрд╕ рдЕрд░реНрде рдореЗрдВ, рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд╕рд╛рде рд╕реНрдкрд╖реНрдЯ рд╡рдВрд╢рдЬ рд╡рд░реНрдЧ рдореЙрдХрд┐рдЯреЛ рдХреА рддрд░рд╣ рдореЙрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдЖрдкрдХреЛ рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЛ рдШреЗрд░рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдХ рдирдЬрд╝рд░ рдореЗрдВ рджреЗрдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреНрд▓рд╛рд╕реЗрд╕ ValidOrderProviderStub, ExpiredOrderProviderStub, InvalidOrderIdException_OrderProviderStub, OnlyOnceOrderProvider рдФрд░ рдЗрд╕реА рддрд░рд╣, рдЬреЛ рдПрдХ рд╣реА рдкреИрдХреЗрдЬ рдореЗрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдПрдХ рд╣реА рдмрд╛рд░ рдореЗрдВ рд╕рднреА рдкрд░реАрдХреНрд╖рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ OrderProvider рд╡рд░реНрдЧ рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЬрд╛рддреЗ рд╣реИрдВред
рдЗрд╕рдореЗрдВ рд╕реНрдкрд╛рдИ рдХрдХреНрд╖рд╛рдПрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдЬреЛ рдЕрдкрдиреЗ рдЖрдк рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИрдВред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреЗрдЬ рд╣реИ рдФрд░ рдкреНрд░рддрд┐рдмрд┐рдВрдм рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдХреЛрдб рдХреЛ рдкрдврд╝рддреЗ рд╕рдордп, рд╣рдо рдПрдХ рд╕рдореНрдореЗрд▓рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдореЛрдХ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рддреА рд╣реИ, рдФрд░ рдЗрд╕рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдЗрд╕ рддрд░рд╣ рдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреЛ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рддреА рд╣реИред рдпрджрд┐ рд╣рдо рдЧреНрд░рд╛рд╣рдХ рд╡рд░реНрдЧреЛрдВ рдХреЛ рдореЙрдХрд┐рдЯреЛ рдЙрдореНрдореАрджреЛрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рд╕реЗ рдордирд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ NullOrderProvider рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рдЙрдкрдпреБрдХреНрдд рдирдХрд▓реА рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЕрд╢рдХреНрдд рдХрднреА рдирд╣реАрдВ рд▓реМрдЯрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдЗрд╕ рдкрд░рд┐рджреГрд╢реНрдп рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред
рдпрджрд┐ рдореЛрдХ рдПрдХ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рд╣реИ, рддреЛ рдореЛрдХ рдПрдХ рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реА рдпреЛрдЬрдирд╛рдУрдВ рдХрд╛ рдкреНрд░рддрд┐рдмрд┐рдВрдм рд╣реИ, рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдЖрдЧреЗ рд▓рд┐рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдпрджрд┐ рдПрдХ рдореЛрдХ рдПрдХ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рд╣реИ, рддреЛ рдпрд╣ рдкрджрд╛рдиреБрдХреНрд░рдорд┐рдд рд╣реИ рдФрд░ рдХреБрдЫ рд╢рд░реНрддреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдШрдЯрдХ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдорд╛рд░реА рдореЛрдХреА рдмрд╣реБрдд рдЕрдзрд┐рдХ рдмрдврд╝ рд╕рдХрддреА рд╣реИ: рдмрд┐рдирд╛ рд╢рд░реНрдд рд╡рд╛рд▓реА рдореЛрдХреА рд╣рдореЗрд╢рд╛ рд╡рд╣реА рд▓реМрдЯрд╛рддреА рд╣реИ, рд╕рд╛рде рд╣реА рдЖрдВрддрд░рд┐рдХ рд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рд╛рде рдореЛрдХреА рднреА, рдЬреИрд╕реЗ рдХрд┐ forIdOne_returningOne_forIdTwo_ReturnorTwo_OrderProviderред рдЕрдВрддрд┐рдо рдЧрдгрдирд╛ рдФрд░ рдЖрдкрдХреЛ рдЙрдЪрд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд╕рд╛рде рдПрдХ FakeOrderProvider рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рддрджрдиреБрд╕рд╛рд░, рдпрджрд┐ рдХреЛрдИ рдореЛрдХ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдПрдХ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рд╣реИ, рддреЛ рдПрдХ рдШрдЯрдХ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЙрд╕рдХреЗ рдореЛрдХреНрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рдШрдЯрдХ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рд╕реЗ рдЬреНрдпрд╛рджрд╛ рдХреБрдЫ рдирд╣реАрдВ рд╣реИред
рдФрд░ рдпрд╣, рд╢рд╛рдпрдж, рдореЙрдм рдХреЗ рдЦрд┐рд▓рд╛рдл рдореБрдЦреНрдп рддрд░реНрдХ рд╣реИ - рд╡рд░реНрддрдорд╛рди рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рдЙрдирдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╣рдо рдЕрдЧрд▓реА рдмрд╛рд░ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрд▓рдЧ рд╕реЗ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред