рдХреЛрдИ рднреА рдХрд┐рд╕реА рднреА рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╕реЗ рдЗрдирдХрд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдЬрдЯрд┐рд▓ рд╣реИред рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдмрд┐рдирд╛, рдЖрдк рдЬрд▓реНрджреА рд╕реЗ рдЕрд░рд╛рдЬрдХрддрд╛ рдореЗрдВ рд╕реНрд▓рд╛рдЗрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдбрд┐рдмрдЧрд░ рдореЗрдВ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдордп рдмрд┐рддрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрд╡реЗрджрди рдХреЗ рдПрдХ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рднрд╛рдЧ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╕реЗ рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рдкреНрд░рднрд╛рд╡реЛрдВ рдХреЛ рдЦреЛрдЬ рдФрд░ рдлрдВрд╕рд╛ рд╕рдХрддреЗ рд╣реИрдВред рдкрд╛рда рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдорд╣рддреНрд╡рдкреВрд░реНрдг, рдЖрд╡рд╢реНрдпрдХ рдФрд░ рдЗрддрдиреЗ рдкрд░ рд╣реИрдВред
рд╡рд┐рдЬреНрдЮрд╛рди рдореЗрдВ, рдкрд░реАрдХреНрд╖рдг рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рд▓реЗрдЦрди рд╣реИрдВред рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд▓рд┐рдЦрд┐рдд рдкрд░реАрдХреНрд╖рдг рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╕рд┐рд╕реНрдЯрдо рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдХреИрд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рд╕рдм рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЗ рд░реВрдк рдореЗрдВ рдкрдврд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╛рдиреА рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, рдПрдХ рд╕реБрд╕рдВрдЧрдд рдФрд░ рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рдкрд╛рда рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдПрдХ рдЖрджрд░реНрд╢ рд╣реИ рдХрд┐ рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдзрд┐рдпрд╛рдВ рдзреАрд░реЗ-рдзреАрд░реЗ рдЖ рд░рд╣реА рд╣реИрдВ, рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИрдВ рдФрд░ рд╕рдмрд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ / рд╕реНрд╡реАрдХреГрддрд┐ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдЦреБрдж рдХреЛ рдкреНрд░рдХрдЯ рдХрд░рддреА рд╣реИрдВ, рдЬрдм рдкрд░реАрдХреНрд╖рдг рдЦреБрдж рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╡реНрдпрд╡рд╕рд╛рдп рдХреА рднрд╛рд╖рд╛ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рд╣рдо рдлрд┐рдЯрдиреЗрд╕ рдХреЛ рдпрд╛рдж рдХрд░рддреЗ рд╣реИрдВ)ред
рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрддреЗ рд╕рдордп, рдЖрдкрдХреЛ рдХреЛрдб рдФрд░ рдХрдХреНрд╖рд╛рдУрдВ рдХреА рддрд░реНрдЬ рдкрд░ рдХрдВрдЬреВрд╕реА рдирд╣реАрдВ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП, рдХреЗрд╡рд▓ рдЙрдиреНрд╣реЗрдВ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдВрд░рдЪрдирд╛ рдХрд░рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рдлреА рд╕рд╛рдорд╛рдиреНрдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд░реАрдХреНрд╖рдг рд╡рд░реНрдЧ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдзрд┐ рд╢рд╛рдорд┐рд▓ рд╣реИ - рд╢рд░реНрдореАрд▓реА рди рд╣реЛрдВ, рдпрд╣ 20 рд╕реНрдХреНрд░реАрди рд╡рд╛рд▓реА рдХрдХреНрд╖рд╛рдУрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдмреЗрд╣рддрд░ рд╣реИред HD рд╕реНрдХреНрд░реАрдиред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╕рдм рдХреБрдЫ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреА рдЕрдзрд┐рдХрддрдо рд╕реНрдкрд╖реНрдЯрддрд╛ рдФрд░ рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рддрд╛рдХрд┐ рд╕рднреА рд░рд┐рд╢реНрддреЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджрд┐рдЦрд╛рдИ рджреЗрдВред рддрд╛рдХрд┐ рдЖрдк рдХреЗрд╡рд▓ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓реЙрдЬрд┐рдХ рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХреЗрдВред рдкрдардиреАрдпрддрд╛ рдХреЗрд╡рд▓ рдбреАрдПрд╕рдПрд▓ (рдбреЛрдореЗрди рд╕реНрдкреЗрд╕рд┐рдлрд┐рдХ рд▓реИрдВрдЧреНрд╡реЗрдЬ) рдХреЛ рдЕрд╕реЗрдореНрдмрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдЬрд╛рдПрдЧреА, рдмрд▓реНрдХрд┐ рдирд╛рдордХрд░рдг рджрд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рд╣реЛрдЧреА,
рдЕрд░реЗрдВрдЬ рдПрдХреНрдЯ рдПрд╕реЗрдЯрд░ рдЕрдкреНрд░реЛрдЪред рдпреЗ рд╕рднреА
рдирдП рджреГрд╖реНрдЯрд┐рдХреЛрдг рдирд╣реАрдВ рд╣реИрдВ
, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрднреА рддрдХ рд╡реНрдпрд╛рдкрдХ рдкреНрд░рд╕рд┐рджреНрдзрд┐ рдирд╣реАрдВ рдорд┐рд▓реА рд╣реИ, рдЬреЛ рдореБрдЭреЗ рдореЗрд░реЗ рдЖрд╕рдкрд╛рд╕ рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рджреЗрдЦрддреЗ рд╣реИрдВред рд╣рд╛рдВ, рдФрд░ рдореИрдВ рдЦреБрдж рджреБрд░реНрдШрдЯрдирд╛ рдХреЗ рдирдП рд╡рд┐рд╖рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдпрд╛ рдерд╛,
рдЬреЛ рд╕реНрдЯреНрд░рдХреНрдЪреНрдпреЛрд░рдкрд╛рд░реНрдЯ рдХреЗ
рд╕реНрд░реЛрдд рдХреЛрдб рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░ рд░рд╣рд╛ рдерд╛ред
рдирд┐рд╕реНрддрд╛рд░рдг рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рддреБрд░рдВрдд рдЖрдкрдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЦреНрдп рдХрджрдо рдХреНрдпрд╛ рд╣реИрдВ:
- рдкрд░реАрдХреНрд╖рдг рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдореБрдЦреНрдп рд╡рд┐рдзрд┐ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдкрд░реАрдХреНрд╖рдг рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдирд╛рдо рджреЗрдВред
- рд╕рдВрднрд╡ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рддрд░реАрдХреЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбреАрдПрд╕рдПрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
- "рдПрдХ рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдзрд┐ - рдПрдХ рдЬреЛрд░" рдХреА рд╢реИрд▓реА рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВред
- рдкрд░реАрдХреНрд╖рдг рдХреЗ рдЕрдВрджрд░реВрдиреА рд╣рд┐рд╕реНрд╕реЛрдВ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХрд░реЗрдВред
- Assert DSL рдмрдирд╛рдПрдБ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕реВрдЪреАрдмрджреНрдз рдЕрдВрдХреЛрдВ рдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдЪрд╛рд░ рдирд╣реАрдВ рд╣реИрдВ, рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рд▓рдЧрднрдЧ рд╕рднреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
рдПрдХ рд╡реНрдпрд╛рдкрдХ рдЕрд░реНрде рдореЗрдВ, рдпрд╣
рд╡реНрдпрд╡рд╕реНрдерд╛ рдЕрдзрд┐рдирд┐рдпрдо рдХреЗ рдкреНрд░рддрд┐рдорд╛рди рдореЗрдВ рдлрд┐рдЯ рдмреИрдарддрд╛ рд╣реИ, рдЬреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдкрд░реАрдХреНрд╖рдг, рдХрд╛рд░реНрд░рд╡рд╛рдИ рдФрд░ рд╕рддреНрдпрд╛рдкрди рдХреА рддреИрдпрд╛рд░реА рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкреНрд░рддрд┐рд╖реНрдард┐рдд рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдкрд░реАрдХреНрд╖рдг рд╡рд░реНрдЧ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рддреИрдпрд╛рд░реА рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдЧрд╛ред рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, SetUp рдореЗрдВ рдпрд╛ FixtureSetUp рдореЗрдВ, рдЕрдзрд┐рдирд┐рдпрдо рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬрд╛рдВрдЪрд╛ рдЬрд╛рдПрдЧрд╛ - Assertред
рдЗрд╕реЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рджрд┐рдЦрд╛рдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИред
рдЖрдЗрдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕рдореБрджреНрд░реА рдбрд╛рдХреВ рд╡рд░реНрдЧ рд╣реИ, рдЬреЛ рдЦреЗрд▓ рдореЗрдВ рдПрдХ рд╕рдореБрджреНрд░реА рдбрд╛рдХреВ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдФрд░ рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИред рдПрдХ рд╕рдореБрджреНрд░реА рдбрд╛рдХреВ рдореИрджрд╛рди рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдШреВрдо рд╕рдХрддрд╛ рд╣реИ, рд╕реЛрдирд╛ рд▓реЗ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЫреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реИ, рд▓рдбрд╝ рд╕рдХрддрд╛ рд╣реИ, рддреИрд░ рд╕рдХрддрд╛ рд╣реИ, рдорд╛рд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдорд░ рд╕рдХрддрд╛ рд╣реИред рдмрд╣реБрдд рд╕реА рдЪреАрдЬреЗрдВ рд╡рд╣ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╕рднреА рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдПрдХ рдлрд╛рдЗрд▓ рдореЗрдВ рдмрджрд▓рдирд╛ рдФрд░ рдХреНрд╖реЗрддреНрд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рд╕реАрдорди рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдЧрд▓рдд рд╣реЛрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдкрд░реАрдХреНрд╖рдг рдХрдХреНрд╖рд╛рдПрдВ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ:
- PirateMovementTests
- PirateAndGoldTests
- PirateDefaultSettingsTests
- PirateActionTests
рд╣рдореНрдо, рд╕рдореБрджреНрд░реА рдбрд╛рдХреВ рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рд╡рд░реНрдЧ рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рд╕рдорд░реНрдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдРрд╕реА рд╢рд╛рдЦрд╛ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рдзрд┐рдпрд╛рдБ рдирд╣реАрдВ рд╣реИрдВред рд▓реЗрдХрд┐рди рджреВрд╕рд░реА рдУрд░, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЦреЗрд▓ рдХрд╛ рдореИрджрд╛рди рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд┐рдореНрдореЗрджрд╛рд░ рддрд░реАрдХреЗ рд╣реИрдВред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдЦреЗрд▓ рдХрд╛ рдореИрджрд╛рди рдмрдирд╛рдиреЗ рдФрд░ рдЖрдВрджреЛрд▓рди рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд▓рд┐рдП рдлрд╝реАрд▓реНрдб рд╡рд░реНрдЧ рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рдЙрдирдХреЗ рдкрд░реАрдХреНрд╖рдг рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реЛрдВрдЧреЗ:
- WhenCreateField
- WhenCreatePlayableField
- WhenGenerateShips
рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдХрдХреНрд╖рд╛ рдХреЗ рдЕрдВрджрд░ рдкрд░реАрдХреНрд╖рдг рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИрдВ:
- MaxSizeShouldBeDefined
- ShouldGenerateSeaOnBorder
- ShouldGenerateShips
рдлрд┐рд░, рдЬрдм рдкрд░реАрдХреНрд╖рдг рдФрд░ рдкрд░рд┐рдгрд╛рдо рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЙрдиреНрд╣реЗрдВ
[рдЧреЗрдо] рдХреНрд░рд┐рдПрдЯ рдлреАрд▓реНрдб [ рдЗрд╕реЗ] рд╕реАрдб рдЬреЗрдирд░реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
[ рдлреАрд▓реНрдб ] рдмреЙрд░реНрдбрд░ рдкрд░ - рдпрд╣ рд▓рдЧрднрдЧ рд╢реБрджреНрдз рдЕрдВрдЧреНрд░реЗрдЬреА рд╣реИред рд╕рдореБрджреНрд░реА рдбрд╛рдХреВ рдХреЗ рд╕рд╛рде, рдЖрдкрдХреЛ рдмрд╕ рд╡рд┐рдзрд┐ рдирд╛рдо рдореЗрдВ рдереЛрдбрд╝рд╛ рдФрд░ рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреНред
- PirateShouldLostGoldIfHeKilled
- ActionSurrenderShouldSendPirateOnShip
рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЬрдм рд╣рдо рдЯреЗрд╕реНрдЯ рдХреНрд▓рд╛рд╕ рдХреЛ рд╢рдмреНрдж рдХреЗ рд╕рд╛рде рдирд╛рдо рджреЗ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рдЕрд░реЗрдВрдЬ рдПрдХреНрдЯ рдПрд╕реНрдЯрд░ рдкрд░ рдПрдХ рд╢реБрджреНрдз рдЙрджрд╛рд╣рд░рдг рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
- рд╡реНрдпрд╡рд╕реНрдерд╛ - рдЬрдм рдЦреЗрд▓ рдореИрджрд╛рди рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред рдкрд░реАрдХреНрд╖рдг рд╡рд░реНрдЧ рдХреЗ рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдЖрдк рдПрдХ рдкрд░реАрдХреНрд╖рдг рдЦреЗрд▓ рдореИрджрд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рддреИрдпрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
- рдЕрдзрд┐рдирд┐рдпрдо - рдПрдХ рдЦреЗрд▓ рдореИрджрд╛рди рдХрд╛ рдирд┐рд░реНрдорд╛рдг ред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдзрд┐ рдореЗрдВ рдФрд░ рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдзрд┐ рдХреЗ рдЖрд░рдВрдн рдореЗрдВ рджреЛрдиреЛрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
- рд╡реНрдпрд╡рд╕реНрдерд╛ - рдирд┐рд╖реНрдкрд╛рджрди рд╕рддреНрдпрд╛рдкрди ред рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдзрд┐ рдХреЗрд╡рд▓ рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреА рд╣реИред
рдПрдХ рдЙрджрд╛рд╣рд░рдг:
[TestFixture] public class WhenCreateField { private Field field; private TestEmptyRules rule; [TestFixtureSetUp] public void ClassInit() {
рд╕рднреА рддреИрдпрд╛рд░реА рдкрд░реАрдХреНрд╖рдг рд╡рд░реНрдЧ рдХреЗ рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ рдХреА рдЧрдИ рдереА, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рддреА рд╣реИред
рдПрдХ рдкрд░реАрдХреНрд╖рд╛ - рдПрдХ рдкрд░реАрдХреНрд╖рд╛ред рдпрд╣ рдКрдкрд░ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рддреБрд░рдВрдд рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдкрд░реАрдХреНрд╖рдг рдХреНрдпрд╛ рдФрд░ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЖрдЦрд┐рд░ рдореЗрдВ рдХреНрдпрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрдХреНрд╕рд░ рдпрд╣ рдПрдХ рдореМрдЬреВрджрд╛ рдкрд░реАрдХреНрд╖рд╛ рдореЗрдВ рдПрд╕реНрдЯрд░ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реБрднрд╛рддрд╛ рд╣реИ - рдЗрд╕реЗ рд╣рдорд╛рд░реЗ рд▓рд┐рдП "рдПрдб рдмрдиреНрдиреА" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП "рдмрдиреНрдиреАрдЬрд╝" рддрдм рдмрд╣реБрдд рдЖрд╕-рдкрд╛рд╕ рдЖ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдорди рдХреЛ рд╢рд░реНрдорд┐рдВрджрд╛ рдХрд░ рджреЗрдВрдЧреЗ рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдордп рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЪреБрд░рд╛ рд▓реЗрдВрдЧреЗред
рдЕрдЧрд▓рд╛, рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреА рд╕рдВрд░рдЪрдирд╛ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВ:
[Test] public void HeMayKillFoes() { var airplaneCell = new AirplaneCell(4, 5); var player = Black.Pirate; var foe = Red.Pirate; airplaneCell.PirateComing(foe); airplaneCell.PirateComing(player); airplaneCell.Pirates.ShouldContain().Exact(player); } [Test] public void HeMayKillFoes() {
рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреА рд╕рд╛рджрдЧреА рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕рд░рд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдкрд╣рд▓рд╛ рд╡рд┐рдХрд▓реНрдк, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдпрд╣ рдорд╣рд╕реВрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕рдордп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдХрд┐ рддреИрдпрд╛рд░реА рдХрд╣рд╛рдВ рдЪрд▓ рд░рд╣реА рд╣реИ, рдЬрд╣рд╛рдВ рд╣рдо рдХрд╛рдо рдХреЗ рдкреНрд░рдореБрдЦ рддрд░реАрдХреЗ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВрдЧреЗ, рдФрд░ рдЬрд╣рд╛рдВ рд╕рддреНрдпрд╛рдкрди рд╕реНрд╡рдпрдВред рджреВрд╕рд░реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рдЯрдХрдЯрдХреА рдЖрд╕рд╛рдиреА рд╕реЗ рдШрдЯрдХреЛрдВ рдХреА рд╕реАрдорд╛рдУрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреА рд╣реИ рдФрд░ рдорди рдЬрд▓реНрджреА рд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдВрджреБрдУрдВ рдХрд╛ рдПрд╣рд╕рд╛рд╕ рдХрд░рддрд╛ рд╣реИред рдореИрдВ рдЧрд╛рд░рдВрдЯреА рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рд╕реНрд╡рдпрдВ рдЕрдкрдиреЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░рдирд╛ рдФрд░ рдпрд╣ рдпрд╛рдж рд░рдЦрдирд╛ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред
рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдг:
[Test] public void AtSecondTimeHeCanNotTransferToShip() {
рдореБрдЦреНрдп рдмрд┐рдВрджреБрдУрдВ рдкрд░ рдкреНрд░рдХрд╛рд╢ рдбрд╛рд▓рд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЬрд┐рд╕ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рд╡рд╣ рддреБрд░рдВрдд рд╕реНрдкрд╖реНрдЯ рд╣реИред рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдЧрд▓рд┐рдпрд╛рд░реЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рджреМрд░рд╛рди, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдЕрдзрд┐рдирд┐рдпрдо рд▓реЗрдЦрди рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рд╕рдмрд╕реЗ рд╡рд┐рд╡рд╛рджрд╛рд╕реНрдкрдж рдмрд┐рдВрджреБ рд╣реИред рдЕрд▓рдЧ-рдЕрд▓рдЧ рд▓реЛрдЧ рдЕрдХреНрд╕рд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЛрдВ рд╕реЗ рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдкрд░реАрдХреНрд╖рдг рд╕реЗрдЯрдЕрдк рдореЗрдВ рдХреНрдпрд╛ рд╢рд╛рдорд┐рд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдХрд╛рд░реНрд░рд╡рд╛рдИ рдореЗрдВ рдХреНрдпрд╛ рд╣реИред рдПрдПрдП рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рд╕рднреА рд▓реЗрдЦреЛрдВ рдореЗрдВ рдПрдХ рд╣реА рдмрд┐рдВрджреБ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рдЬрд╡рд╛рдм рднреА рд╡рд╣рд╛рдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдореЗрд░реЗ рд╕рд╣рдпреЛрдЧрд┐рдпреЛрдВ рдФрд░ рдореЗрд░реЗ рдкрд╛рд╕ рдЖрдпрд╛ рдерд╛: рдЕрдВрддрд░ рдХрд░реЗрдВ рдХрд┐ рдЖрдк рдЗрд╕реЗ рдХреИрд╕реЗ рдЖрд╡рд╢реНрдпрдХ рдорд╛рдирддреЗ рд╣реИрдВ рдФрд░ рдХреИрд╕реЗ рд╕рд╣рдордд рд╣реЛрддреЗ рд╣реИрдВред рд╣рд╛рдБ, рдзрдиреНрдпрд╡рд╛рдж рдХреИрдк! рдХреЛрдИ рд╕рдЦреНрдд рдирд┐рдпрдо рдирд╣реАрдВ рд╣реИрдВред
рдЕрдм рдореБрдЦреНрдп рдмрд┐рдВрджреБ, рдЬреЛ рд╕рдмрд╕реЗ рдЪреМрдХрд╕ рдФрд░ рд▓реЗрдЦрди рдкрд░реАрдХреНрд╖рдг рдХрд╛рдорд░реЗрдб рдиреЗ рдкрд╣рд▓реЗ рд╣реА рджреЗрдЦрд╛ рд╣реИред рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ, рдХреЛрдИ рд╕реНрдкрд╖реНрдЯ рдореБрдЦрд░ рдирд┐рд░реНрдорд╛рдг рдирд╣реАрдВ рд╣реИред
рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ, рдореБрдЭреЗ рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдмрд╣реБрдд рдЕрдзрд┐рдХ рдкрд╕рдВрдж рд╣реИ, рдХреНрдпреЛрдВрдХрд┐
рдкрд╣рд▓рд╛ рдЖрд╡реЗрдЧ рдЙрд╕ рд╕рдВрдкрддреНрддрд┐ рдХреЛ рд▓рд┐рдЦрдирд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЬрд╛рдВрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ ред рддрдм рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдордЭрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЛ рд╡рд╛рдВрдЫрд┐рдд рдПрд╕реНрдЯрд░ рджрд░реНрдЬ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрд┐рд╕ рдкрд░ рдореИрдВрдиреЗ InteliSense рдХреЗ рд▓рд┐рдП рд╢реЙрд░реНрдЯрдХрдЯ рд▓рдЯрдХрд╛рдП рдереЗред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Assert.AreEqual / Assert.That ($ рд╡рд╛рд╕реНрддрд╡рд┐рдХ $, Is.qualTo ($ рдЕрдкреЗрдХреНрд╖рд┐рдд $)) рдХреЗ рд▓рд┐рдП рдПрдПрдИ рдерд╛, рдЕрд░реНрдерд╛рдд рдЗрд╕ рд╕рдВрдпреЛрдЬрди рдХреЛ рдЯрд╛рдЗрдк рдХрд┐рдпрд╛, рдЯреИрдм рдХреЛ рджрдмрд╛рдпрд╛ рдФрд░ рдХреЛрдб рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, ReSharper рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛, рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдореБрдЦрд░ рдкрд╣рд▓реЗ рдЖрддрд╛ рд╣реИред
рд╡рд┐рд╕реНрддрд╛рд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рджреГрд╖реНрдЯрд┐ рд╕реЗ рднрд╛рд╖рд╛ рдХреА рдХреНрд╖рдорддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕рднреА рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рд╣рдореЗрд╢рд╛ рдПрдХ рд╕рдВрдХреЗрдд рд╣реЛрдЧрд╛, рдЪрд╛рд╣реЗ рд╡реЗ ReSharper рдпрд╛ CodeAssist рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕рд┐рд╕реНрдЯрдо рдХрд╛ред

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

рдпрд╣ рдЪрд┐рддреНрд░рдг nUnit рдХреЗ рд▓рд┐рдП рд╕рддреНрдпрд╛рдкрди рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╛рдирдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рджрд┐рдЦрд╛рддрд╛ рд╣реИред рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ Assert.That рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЛрдб рдкрд╣рд▓реЗ рдЖрддрд╛ рд╣реИред рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП рдорд╛рди рд▓рд┐рдЦрддреЗ рд╕рдордп, IntelliSense рд╣рдореЗрд╢рд╛ рдорджрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЪрд┐рддреНрд░рдг рдбреНрд░реЙрдк-рдбрд╛рдЙрди рд╕реВрдЪреА рдореЗрдВ рдХрд┐рд╕реА рднреА рдЖрдЗрдЯрдо рдХреЛ рд╕реНрдХреНрд░реЙрд▓ рдХрд┐рдП рдмрд┐рдирд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрд╛рд░реНрдп рджрд┐рдЦрд╛рддрд╛ рд╣реИред рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП рдореВрд▓реНрдп рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрд╛рдж, рдлрд┐рд░ рд╕реЗ, рдЖрдкрдХреЛ рд╕реЗрд╡рд╛ рд╢рдмреНрдж рдХреЛ "рдпрд╛рдж" рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╕рддреНрдпрд╛рдкрди рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рд▓рд┐рдЦреЗрдВ, рдФрд░ рдЬрдм рдЖрдк рдЕрдкреЗрдХреНрд╖рд┐рдд рдореВрд▓реНрдп рджрд░реНрдЬ рдХрд░рддреЗ рд╣реИрдВ рддреЛ IntelliSense рд╢рдХреНрддрд┐рд╣реАрди рд╣реЛрддрд╛ рд╣реИред
рдЗрд╕рдХреЗ рдмрд╛рдж, рджреЛ рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВ:
[Test] public void FieldShouldBeCreated() {
рдФрд░ рджреВрд╕рд░рд╛ рдЙрджрд╛рд╣рд░рдг:
[Test] public void MaxSizeShouldBeDefined() {
рдпрд╣ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрд╣рд▓реЗ рд╡рд┐рдХрд▓реНрдк, рдЬрд╣рд╛рдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╡реЗ рдЕрдзрд┐рдХ рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рдФрд░ рдкрдврд╝рдиреЗ рдореЗрдВ рдЖрд╕рд╛рди рд╣реИрдВред
рдореБрдЦреНрдп рдкреНрд▓рд╕ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╣реИ рдФрд░ рдХреНрдпрд╛ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реИ ред nnnit рдЗрд╕ рд╕рдВрдмрдВрдз рдореЗрдВ рдЕрдЪреНрдЫрд╛ рд╣реИ, рдЬреЛ рдХреБрдЫ рд╣рдж рддрдХ рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдХреЗ рдЕрдВрддрд░ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди MSTest рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдпрд╣ рд╕реНрд╡рд░реНрдЧ рдФрд░ рдкреГрдереНрд╡реА рд╣реИред MSTest рдореЗрдВ, рдЖрдорддреМрд░ рдкрд░ рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЕрдкреЗрдХреНрд╖рд┐рдд рдкрд░рд┐рдгрд╛рдо рдХрд╣рд╛рдВ рд╣реИ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдХрд╣рд╛рдВ рд╣реИред
рдкрд░реАрдХреНрд╖рдг рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╕реНрддрд╛рд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдПрдХ рдФрд░ рдлрд╛рдпрджрд╛ рдЙрдирдХреА рддрд╛рд░реНрдХрд┐рдХ рд╕рдВрд░рдЪрдирд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ рдЬреЛ рдбреЛрдореЗрди рдореЙрдбрд▓ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИред рдпрд╣ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдлрд┐рд░ рд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
[Test] public void ItShouldBeGrassByDefault() {
рдХреМрди рд╕рд╛ рд░рд╛рд╕реНрддрд╛ рд╕рд╛рдл рд╣реИ?
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЯреЗрд╕реНрдЯ рдбреАрдПрд╕рдПрд▓ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ (рдЕрднреА рддрдХ рдкреЙрд▓рд┐рд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ):
public static CollectionAssertCases ShouldContain(this IEnumerable enumerable) { return new CollectionAssertCases(enumerable); } public class CollectionAssertCases { private readonly IEnumerable enumerable; public List AsList { get { return new List(enumerable); } } public CollectionAssertCases(IEnumerable enumerable) { this.enumerable = enumerable; } public void Elements(params T[] elements) { Assert.That(enumerable, Is.EquivalentTo(elements)); } } public static void OnlyCellsOf(this CollectionAssertCases collection, CellType cellType) { Assert.IsTrue(collection.AsList.All(c => c.CellType == cellType)); }
рдЗрд╕ рддрдереНрдп рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрд┐ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП DSL рдЕрдзрд┐рдХ рд╕рдордЭ рдФрд░ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╣реЛрддрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдпрд╣ рдЖрдкрдХреЛ рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ рдорд╣рддреНрд╡рд╣реАрди рд╡рд┐рд╡рд░рдг рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдХреЛрдб рджреЛрд╣рд░рд╛рд╡ рдХрдо рдХрд░реЗрдВ рдФрд░ рдкрд░реАрдХреНрд╖рдг рд▓реЗрдЦрди рдЧрддрд┐ рдмрдврд╝рд╛рдПрдВред
рдПрдХ рдФрд░ рдЙрдкрдпреЛрдЧреА рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЛрдб рдХреЗ рддрдХрдиреАрдХреА рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореИрдВ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ рдХрд┐ рд╡рд░реНрдЧ рдХреА рдХреЛрдИ рднреА рд╕рдВрдкрддреНрддрд┐ рдЕрдЪрд╛рдирдХ рд▓реЗрдЦрди рдпреЛрдЧреНрдп рд╣реЛ рдЬрд╛рдП, рдФрд░ рдореИрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░реАрдХреНрд╖рдг рдЖрд╕рд╛рдиреА рд╕реЗ рд▓рд┐рдЦ рд╕рдХрддрд╛ рд╣реВрдВред
[Test] public void PiratesStateCanNotBeSetDirectly() {
рдкреНрд░рддрд┐рдмрд┐рдВрдм рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдкрд░реАрдХреНрд╖рдг рдЕрдирд╛рд╡рд╢реНрдпрдХ рддрд░реАрдХреЛрдВ рдФрд░ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдкреАрдЖрдИ рдХреЛ рдмрджрд▓рдиреЗ рдкрд░ рдирд┐рдпрдВрддреНрд░рдг рджреЗрддрд╛ рд╣реИ рдпрджрд┐ рдЖрдк рдПрдХ рдмрдбрд╝реА рдпрд╛ рдЕрдиреБрднрд╡рд╣реАрди рдЯреАрдо рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ рдЧреБрдгреЛрдВ рдХреЗ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЙрдкрдпреЛрдЧ рдкрд░ рд╕рд╣рдордд рд╣реЛрдирд╛ рд╣рдореЗрд╢рд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдпрд╣ "рдлреБрд▓рдкреНрд░реВрдл" рдХреЗ рд╕рдорд╛рди рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд╕рд╣рдордд рд╣реИрдВ рдХрд┐ рдкрд░реАрдХреНрд╖рдг рдЙрди рд╕рд╣рдпреЛрдЧрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рднреА рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЬреНрд╡рд▓рдВрдд рднрд╛рд╡рдирд╛рдУрдВ рдХрд╛ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдЬреЛ рдкреНрд░рддрд┐рдмрд┐рдВрдм рдХреА рдЕрд╕реНрд╡реАрдХреГрддрд┐ рдореЗрдВ рд╕реБрдиреНрди рд╣реЛ рдЧрдП рд╣реИрдВред
рдлрд┐рд░, рд╕рд╣рдХрд░реНрдорд┐рдпреЛрдВ рдкрд░ рдЧрд▓рд┐рдпрд╛рд░реЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдпрд╣ рдкрд╛рдпрд╛ рдЧрдпрд╛ рдХрд┐ рдЖрджрдд рдХреА рд╢рдХреНрддрд┐ рдПрдХ рдорд╣рд╛рди рдмрд╛рдд рд╣реИ - рддреБрд░рдВрдд рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдкрдврд╝рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╣рдж рддрдХ рдЕрд╕рд╛рдорд╛рдиреНрдп рд╣реИред рдЖрдБрдЦреЗрдВ рдПрдХ рд╕реНрдерд┐рд░ рд╡рд░реНрдЧ рдХреА рдЦреЛрдЬ рдХрд░ рд░рд╣реА рд╣реИрдВ рдФрд░ рдпрд╣ рдирд╣реАрдВ рдЬрд╛рдирддреА рд╣реИрдВ рдХрд┐ рд╣рд▓реНрдХреА-рд╕реА рдЕрд╕рд╛рд╡рдзрд╛рдиреА рдХрд╛ рдХреНрдпрд╛ рдХрд╛рд░рдг рд╣реИ, рдЬрдмрдХрд┐ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ рдореБрдЦрд░ рд╢рдмреНрдж рдирд╣реАрдВ рдЖрддрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЬрд▓реНрджреА рд╕реЗ рдмреАрдд рдЬрд╛рдПрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдорди рдХрд╛ рд▓рдЪреАрд▓рд╛рдкрди рдореМрдЬреВрдж рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╡рд░реНрдгрд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдкреНрд▓рд╕ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:- рдорд╛рдирд╡ рд╡рд┐рдЪрд╛рд░ рдХреЗ рдкрд╛рдареНрдпрдХреНрд░рдо рдореЗрдВ рдПрдХ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛;
- рдореБрдЦрд░ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рд╕рдВрдХрд▓рди рдХрд░рддреЗ рд╕рдордп рд╕рдВрдХреЗрдд рдореЗрдВ рдЕрдкреЗрдХреНрд╖рд┐рдд рдбреЗрдЯрд╛ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╕реНрдкрд╖реНрдЯ рд╕рдВрдХреЗрдд;
- рдкрд░реАрдХреНрд╖рдг рдХреА рдкрдардиреАрдпрддрд╛;
- рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреА рдкрдардиреАрдпрддрд╛ред
рд╡рд┐рдкрдХреНрд╖ рджреНрд╡рд╛рд░рд╛, рдореИрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдЧрд╛:- рдкреНрд░рд╡реЗрд╢ рдереНрд░реЗрд╕рд╣реЛрд▓реНрдбред рдЪреЗрдХреЛрд╕реНрд▓реИрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рддрд░реАрдХреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЛ рдпрд╣ рдмрддрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдХрд┐ рдЪреЗрдХ рдХреЗ рд▓рд┐рдП рдбреАрдПрд╕рдПрд▓ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдХреНрдпрд╛ рдореМрдЬреВрдж рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдирд┐рдпрдо рдХреНрдпрд╛ рд╣реИрдВред