рдПрдХрддрд╛ рдореЗрдВ рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рдХрд╛ рдкрд░рд┐рдЪрдп

рдЫрд╡рд┐

рдХреНрдпрд╛ рдЖрдк рдЙрддреНрд╕реБрдХ рд╣реИрдВ рдХрд┐ рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдг рдПрдХрддрд╛ рдореЗрдВ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ? рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рдореЗрдВ рдХреМрди рд╕реА рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рд╣реИ? рдпрджрд┐ рдЖрдкрдиреЗ рдЗрди рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдЙрддреНрддрд░ рджрд┐рдпрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдЖрдкрдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред рдЗрд╕рд╕реЗ рдЖрдк рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реАрдЦреЗрдВрдЧреЗ:

  • рдпрд╣ рдХреНрдпрд╛ рд╣реИ
  • рдЗрд╕рдХрд╛ рд▓рд╛рдн
  • рдлрд╛рдпрджреЗ рдФрд░ рдиреБрдХрд╕рд╛рди
  • рдпрд╣ рдЯреЗрд╕реНрдЯ рд░рдирд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХрддрд╛ рдореЗрдВ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
  • рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдХреИрд╕реЗ рд▓рд┐рдЦрдирд╛ рдФрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рд╣реИ рдЬрд┐рдирдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛

рдиреЛрдЯ : рдпрд╣ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдорд╛рдирддрд╛ рд╣реИ рдХрд┐ рдЖрдк C # рднрд╛рд╖рд╛ рдФрд░ рдПрдХрддрд╛ рдореЗрдВ рд╡рд┐рдХрд╛рд╕ рдХреА рдореВрд▓ рдмрд╛рддреЗрдВ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВред рдпрджрд┐ рдЖрдк рдПрдХрддрд╛ рдХреЗ рд▓рд┐рдП рдирдП рд╣реИрдВ, рддреЛ рдкрд╣рд▓реЗ рдЗрд╕ рдЗрдВрдЬрди рдкрд░ рдЕрдиреНрдп рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рджреЗрдЦреЗрдВ ред

рдПрдХ рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рдХреНрдпрд╛ рд╣реИ?


рдХреЛрдб рдореЗрдВ рджреЗрд░реА рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рд╕рдордЭрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рдХреНрдпрд╛ рд╣реИред рд╕реАрдзреЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ рдХрд╣реЗрдВ рддреЛ рдпреВрдирд┐рдЯ рдЯреЗрд╕реНрдЯрд┐рдВрдЧ рдЯреЗрд╕реНрдЯрд┐рдВрдЧ рд╣реИ ... рдпреВрдирд┐рдЯреНрд╕ред

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

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

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

 public string name = "" public void UpdateNameWithCharacter(char: character) { // 1 if (!Char.IsLetter(char)) { return; } // 2 if (name.Length > 10) { return; } // 3 name += character; } 

рдпрд╣рд╛рдБ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ:

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

рдЗрд╕ рдЗрдХрд╛рдИ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдП рдЧрдП рдХрд╛рд░реНрдп рдХрд╛ "рдореЙрдбреНрдпреВрд▓" рд╣реИред рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдзрд┐ рддрд░реНрдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред

рдпреВрдирд┐рдЯ рдЯреЗрд╕реНрдЯ рдЙрджрд╛рд╣рд░рдг


UpdateNameWithCharacter рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рд╣рдо рдпреВрдирд┐рдЯ рдЯреЗрд╕реНрдЯ рдХреИрд╕реЗ рд▓рд┐рдЦрддреЗ рд╣реИрдВ?

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

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

UpdateNameDoesntAllowCharacterAddingToNameIfNameIsTenOrMoreCharactersInLength

UpdateNameAllowsLettersToBeAddedToName

UpdateNameDoesntAllowNonLettersToBeAddedToName

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

рдкреНрд░рддреНрдпреЗрдХ рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рдЬреЛ рдЖрдк рд▓рд┐рдЦрддреЗ рд╣реИрдВ рд╡рд╣ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдПрдХ рд╕реВрдЯ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред рдкрд░реАрдХреНрд╖рдг рд╕реВрдЯ рдореЗрдВ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рддрд╛рд░реНрдХрд┐рдХ рд╕рдореВрд╣ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕рднреА рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рд╢рд╛рдорд┐рд▓ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "рдпреБрджреНрдз рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг")ред рдпрджрд┐ рдХрд┐рдЯ рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдкрд░реАрдХреНрд╖рдг рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ, рддреЛ рд╕рдВрдкреВрд░реНрдг рдкрд░реАрдХреНрд╖рдг рд╕реВрдЯ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред


рдЦреЗрд▓ рдХрд╛ рд╢реБрднрд╛рд░рдВрдн


рдХреНрд░реИрд╢рд░реЙрдЗрдбреНрд╕ рд╕реНрдЯрд╛рд░реНрдЯрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЦреЛрд▓реЗрдВ (рдЖрдк рдЗрд╕реЗ рдпрд╣рд╛рдВ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ), рдФрд░ рдлрд┐рд░ рдПрд╕реЗрдЯреНрд╕ / рдЖрд░рдбрдмреНрд▓реНрдпреВ / рджреГрд╢реНрдпреЛрдВ рдлрд╝реЛрд▓реНрдбрд░ рд╕реЗ рдЧреЗрдо рджреГрд╢реНрдп рдЦреЛрд▓реЗрдВред


рдХреНрд░реИрд╢рд░реЙрдпрдб рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд▓реЗ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ, рдФрд░ рдлрд┐рд░ рд╕реНрдЯрд╛рд░реНрдЯ рдЧреЗрдо рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдХреАрдмреЛрд░реНрдб рдкрд░ рдмрд╛рдПрдБ рдФрд░ рджрд╛рдПрдБ рддреАрд░ рдХреЗ рд╕рд╛рде рд╕реНрдкреЗрд╕рд╢рд┐рдк рд▓реЗ рдЬрд╛рдПрдБред

рд▓реЗрдЬрд░ рдмреАрдо рдХреЛ рдЖрдЧ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕реНрдкреЗрд╕рдмрд╛рд░ рдХреЛ рджрдмрд╛рдПрдВред рдпрджрд┐ рдмреАрдо рдХреНрд╖реБрджреНрд░рдЧреНрд░рд╣ рдХреЛ рдорд╛рд░рддрд╛ рд╣реИ, рддреЛ рд╕реНрдХреЛрд░ рдПрдХ рд╕реЗ рдмрдврд╝ рдЬрд╛рдПрдЧрд╛ред рдпрджрд┐ рдХреЛрдИ рдХреНрд╖реБрджреНрд░рдЧреНрд░рд╣ рдЬрд╣рд╛рдЬ рд╕реЗ рдЯрдХрд░рд╛рддрд╛ рд╣реИ, рддреЛ рдЬрд╣рд╛рдЬ рдлрдЯ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЦреЗрд▓ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ (рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде)ред


рдереЛрдбрд╝рд╛ рдЦреЗрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдФрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЬрд╣рд╛рдЬ рдХреЗ рд╕рд╛рде рдХреНрд╖реБрджреНрд░рдЧреНрд░рд╣ рдХреА рдЯрдХреНрдХрд░ рдХреЗ рдмрд╛рдж рд╢рд┐рд▓рд╛рд▓реЗрдЦ рдЧреЗрдо рдУрд╡рд░ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред


рдПрдХрддрд╛ рдЯреЗрд╕реНрдЯ рд░рдирд░ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛ рд░рд╣реА рд╣реИ


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

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


рдЯреЗрд╕реНрдЯ рд░рдирд░ рдПрдХ рдирдИ рд╡рд┐рдВрдбреЛ рдореЗрдВ рдЦреБрд▓рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рдЯреЗрд╕реНрдЯ рд░рдирд░ рд╡рд┐рдВрдбреЛ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдФрд░ рд╕реАрди рд╡рд┐рдВрдбреЛ рдХреЗ рдмрдЧрд▓ рд╡рд╛рд▓реА рдЬрдЧрд╣ рдкрд░ рдЦреАрдВрдЪрдХрд░ рдЕрдкрдиреЗ рдЬреАрд╡рди рдХреЛ рд╕рд░рд▓ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред


рдПрдирдпреВрдирд┐рдЯ рдФрд░ рдЯреЗрд╕реНрдЯ рдлреЛрд▓реНрдбрд░реНрд╕ рддреИрдпрд╛рд░ рдХрд░рдирд╛


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

рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдХрдХреНрд╖рд╛рдПрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХреА рдЬрд╛рдПрдВрдЧреАред

рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╡рд┐рдВрдбреЛ рдореЗрдВ , RW рдлрд╝реЛрд▓реНрдбрд░ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред рдЯреЗрд╕реНрдЯ рд░рдирд░ рд╡рд┐рдВрдбреЛ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ рдФрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ PlayMode рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

Create PlayMode Test рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдлрд╝реЛрд▓реНрдбрд░ рдирд╛рдордХ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдЖрдкрдХреЛ рдЖрд░рдбрдмреНрд▓реНрдпреВ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдПрдХ рдирдпрд╛ рдлрд╝реЛрд▓реНрдбрд░ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред рд╣рдо рдорд╛рдирдХ рдирд╛рдо рдЯреЗрд╕реНрдЯ рд╕реЗ рд╕рдВрддреБрд╖реНрдЯ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдХреЗрд╡рд▓ рдПрдВрдЯрд░ рджрдмрд╛ рд╕рдХрддреЗ рд╣реИрдВред


рдЖрдк рд╕реЛрдЪ рд░рд╣реЗ рд╣реЛрдВрдЧреЗ рдХрд┐ рдЯреЗрд╕реНрдЯ рд░рдирд░ рдХреЗ рдЕрдВрджрд░ рдпреЗ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЯреИрдм рдХреНрдпрд╛ рд╣реИрдВред

PlayMode рдЯреИрдм рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреНрд▓реЗ рдореЛрдб (рдЬрдм рдЧреЗрдо рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ рдЪрд▓ рд░рд╣рд╛ рд╣реЛ) рдореЗрдВ рдХрд┐рдП рдЧрдП рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред EditMode рдЯреИрдм рдкрд░ рдкрд░реАрдХреНрд╖рдг рдкреНрд▓реЗ рдореЛрдб рдХреЗ рдмрд╛рд╣рд░ рдЪрд▓рд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ , рдЬреЛ рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ рдореЗрдВ рдХрд╕реНрдЯрдо рд╡реНрдпрд╡рд╣рд╛рд░ рдЬреИрд╕реА рдЪреАрдЬреЛрдВ рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред

рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ, рд╣рдо PlayMode рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдХрд╡рд░ рдХрд░реЗрдВрдЧреЗред рд▓реЗрдХрд┐рди рдЬрдм рдЖрдк рд╕рд╣рдЬ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк EditMode рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ рдЯреЗрд╕реНрдЯ рд░рдирд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рд╣рдореЗрд╢рд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ PlayMode рдЯреИрдм рдЪреБрдирд╛ рдЧрдпрд╛ рд╣реИ ред

рдЯреЗрд╕реНрдЯ рд╕реВрдЯ рдореЗрдВ рдХреНрдпрд╛ рд╣реИ?


рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдКрдкрд░ рд╕реАрдЦрд╛, рдПрдХ рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдЬреЛ рдХреЛрдб рдХреЗ рдПрдХ рдЫреЛрдЯреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЯреБрдХрдбрд╝реЗ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рдпреВрдирд┐рдЯ рдЯреЗрд╕реНрдЯ рдПрдХ рд╡рд┐рдзрд┐ рд╣реИ, рдЗрд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдХреНрд▓рд╛рд╕ рдлрд╛рдЗрд▓ рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЯреЗрд╕реНрдЯ рд░рдирд░ рд╕рднреА рдЯреЗрд╕реНрдЯ рдХреНрд▓рд╛рд╕ рдлрд╛рдЗрд▓реНрд╕ рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрдирд╕реЗ рдпреВрдирд┐рдЯ рдЯреЗрд╕реНрдЯ рдХрд░рддрд╛ рд╣реИред рдПрдХ рдпреВрдирд┐рдЯ рдлрд╝рд╛рдЗрд▓ рдЬрд┐рд╕рдореЗрдВ рдпреВрдирд┐рдЯ рдЯреЗрд╕реНрдЯ рд╣реЛрддреЗ рд╣реИрдВ, рдЯреЗрд╕реНрдЯ рд╕реВрдЯ рдХрд╣рд▓рд╛рддрд╛ рд╣реИред

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

рдЯреЗрд╕реНрдЯ рдЕрд╕реЗрдВрдмрд▓реА рдФрд░ рдЯреЗрд╕реНрдЯ рд╕реВрдЯ рддреИрдпрд╛рд░ рдХрд░рдирд╛


рдЯреЗрд╕реНрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдЪреБрдиреЗрдВ рдФрд░ рдЯреЗрд╕реНрдЯ рд░рдирд░ рд╡рд┐рдВрдбреЛ рдореЗрдВ рдХрд░реЗрдВрдЯ рдлреЛрд▓реНрдбрд░ рдмрдЯрди рдореЗрдВ рдЯреЗрд╕реНрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдПрдВ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдирдИ TestSuite рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рджреЗрдВред


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

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

рдЯреЗрд╕реНрдЯ рдХреЛрдб рдХреЗ рд▓рд┐рдП рдЧреЗрдо рдХрдХреНрд╖рд╛рдУрдВ рддрдХ рдкрд╣реБрдВрдЪ рдХреЗ рд▓рд┐рдП, рд╣рдо рдХреНрд▓рд╛рд╕ рдХреЛрдб рдХреА рдПрдХ рдЕрд╕реЗрдВрдмрд▓реА рдмрдирд╛рдПрдВрдЧреЗ рдФрд░ рдЯреЗрд╕реНрдЯ рдЕрд╕реЗрдВрдмрд▓реА рдореЗрдВ рд▓рд┐рдВрдХ рд╕реЗрдЯ рдХрд░реЗрдВрдЧреЗред рдЗрд╕реЗ рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдкрд┐рдпреЛрдВ рдлрд╝реЛрд▓реНрдбрд░ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдЗрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдкрд░ рд░рд╛рдЗрдЯ-рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ Create тЦ╕ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдкрд░рд┐рднрд╛рд╖рд╛ рдЪреБрдиреЗрдВ ред


рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо GameAssembly рдирд╛рдо рджреЗрдВ ред


рдЯреЗрд╕реНрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ, рдФрд░ рдлрд┐рд░ рдЯреЗрд╕реНрдЯ рдкрд░рд┐рднрд╛рд╖рд╛ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реИрдВред рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ рдореЗрдВ, рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдкрд░рд┐рднрд╛рд╖рд╛ рд╕рдВрджрд░реНрдн рд╢реАрд░реНрд╖рдХ рдХреЗ рддрд╣рдд рдкреНрд▓рд╕ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред


рдЖрдкрдХреЛ рдЧреБрдо рд╕рдВрджрд░реНрдн рдХреНрд╖реЗрддреНрд░ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред рдЪрдпрди рд╡рд┐рдВрдбреЛ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдлрд╝реАрд▓реНрдб рдХреЗ рдмрдЧрд▓ рдореЗрдВ рд╕реНрдерд┐рдд рдбреЙрдЯ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред GameAssembly рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред


рдЖрдкрдХреЛ рд▓рд┐рдВрдХ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ GameAssembly рдЕрд╕реЗрдВрдмрд▓реА рдлрд╝рд╛рдЗрд▓ рдХреЛ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд╕рд╣реЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рдХрд░реЗрдВ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ ред


рдпрджрд┐ рдЖрдк рдЗрди рдЪрд░рдгреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдпреВрдирд┐рдЯ рдЯреЗрд╕реНрдЯ рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рдЕрдВрджрд░ рдЧреЗрдо рдХреА рдХреНрд▓рд╛рд╕ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдирд╣реАрдВ рдХрд░ рдкрд╛рдПрдВрдЧреЗред рдЗрд╕рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рдХреЛрдб рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред

рд╣рдо рдкрд╣рд▓реА рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрддреЗ рд╣реИрдВ


рдХреЛрдб рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рдЗрд╕реЗ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП TestSuite рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░ рдбрдмрд▓-рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдЗрд╕рдХреЗ рд╕рд╛рде рд╕рднреА рдХреЛрдб рдмрджрд▓реЗрдВ:

 using UnityEngine; using UnityEngine.TestTools; using NUnit.Framework; using System.Collections; public class TestSuite { } 

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

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

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

 private Game game; // 1 [UnityTest] public IEnumerator AsteroidsMoveDown() { // 2 GameObject gameGameObject = MonoBehaviour.Instantiate(Resources.Load<GameObject>("Prefabs/Game")); game = gameGameObject.GetComponent<Game>(); // 3 GameObject asteroid = game.GetSpawner().SpawnAsteroid(); // 4 float initialYPos = asteroid.transform.position.y; // 5 yield return new WaitForSeconds(0.1f); // 6 Assert.Less(asteroid.transform.position.y, initialYPos); // 7 Object.Destroy(game.gameObject); } 

рдХреЛрдб рдХреА рдХреЗрд╡рд▓ рдХреБрдЫ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реЗ рдмрд╣реБрдд рд╕рд╛рд░реА рдЪреАрдЬрд╝реЗрдВ рдХрд░рддреЗ рд╣реИрдВред рддреЛ рдЪрд▓реЛ рдмрдВрдж рдХрд░реЛ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рднрд╛рдЧ рд╕реЗ рдирд┐рдкрдЯреЗрдВ:

  1. рдпрд╣ рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ ред рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрдХрд▓рдХ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреА рд╣реИрдВред рдпрд╣ рд╡рд┐рд╢реЗрд╖рддрд╛ рдпреВрдирд┐рдЯреА рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдмрддрд╛рддреА рд╣реИ рдХрд┐ рдХреЛрдб рдПрдХ рдпреВрдирд┐рдЯ рдЯреЗрд╕реНрдЯ рд╣реИред рдЗрд╕рдХреЗ рдХрд╛рд░рдг, рдпрд╣ рдкрд░реАрдХреНрд╖рдг рд╢реБрд░реВ рдХрд░рддреЗ рд╕рдордп рдЯреЗрд╕реНрдЯ рд░рдирд░ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред
  2. рдЦреЗрд▓ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдПрдБред рдЦреЗрд▓ рдореЗрдВ рдмрд╛рдХреА рд╕рдм рдХреБрдЫ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЬрдм рд╣рдо рдЗрд╕реЗ рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рдореЗрдВ рд╡рд╣ рд╕рдм рдХреБрдЫ рд╢рд╛рдорд┐рд▓ рд╣реЛрдЧрд╛ рдЬрд┐рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдПрдХ рдЙрддреНрдкрд╛рджрди рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ, рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рд╕рднреА рддрддреНрд╡ рдПрдХ рд╣реА рдкреНрд░реАрдлреИрдм рдХреЗ рдЕрдВрджрд░ рдирд╣реАрдВ рд╣реЛрдВрдЧреЗред рдЗрд╕рд▓рд┐рдП, рдЖрдкрдХреЛ рджреГрд╢реНрдп рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд╕рднреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ред
  3. рдпрд╣рд╛рдВ рд╣рдо рдПрдХ рдХреНрд╖реБрджреНрд░рдЧреНрд░рд╣ рдмрдирд╛рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╣рдо рдирд┐рдЧрд░рд╛рдиреА рдХрд░ рд╕рдХреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдШреВрдо рд░рд╣рд╛ рд╣реИред SpawnAsteroid рд╡рд┐рдзрд┐ рдирд┐рд░реНрдорд┐рдд рдХреНрд╖реБрджреНрд░рдЧреНрд░рд╣ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрддрд╛ рд╣реИред рдХреНрд╖реБрджреНрд░рдЧреНрд░рд╣ рдШрдЯрдХ рдореЗрдВ рдПрдХ Move рд╡рд┐рдзрд┐ рд╣реИ (рдпрджрд┐ рдЖрдк рдЙрддреНрд╕реБрдХ рд╣реИрдВ рдХрд┐ рдЖрдВрджреЛрд▓рди рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЖрдк рдЖрд░рдбрдмреНрд▓реНрдпреВ / рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЗ рдЕрдВрджрд░ рдХреНрд╖реБрджреНрд░рдЧреНрд░рд╣ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ)ред
  4. рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реНрдерд┐рддрд┐ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рддрд╛рдХрд┐ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реЛ рд╕рдХреЗ рдХрд┐ рдХреНрд╖реБрджреНрд░рдЧреНрд░рд╣ рдиреАрдЪреЗ рдЪрд▓рд╛ рдЧрдпрд╛ рд╣реИред
  5. рд╕рднреА рдпреВрдирд┐рдЯреА рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдг рдХреЛрд░рдЖрдЙрдЯ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдПрдХ рдирд░рдо рд░рд┐рдЯрд░реНрди рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рдо рдЙрд╕ рд╕рдордп рдХреЗ рдкрд╛рд░рд┐рдд рд╣реЛрдиреЗ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 0.1 рд╕реЗрдХрдВрдб рдХрд╛ рдПрдХ рд╕рдордп рдХрджрдо рднреА рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдХреНрд╖реБрджреНрд░рдЧреНрд░рд╣ рдХреЛ рдиреАрдЪреЗ рдЬрд╛рдирд╛ рдерд╛ред рдпрджрд┐ рдЖрдкрдХреЛ рдПрдХ рд╕рдордп рдХрджрдо рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдк рдЕрд╢рдХреНрдд рд▓реМрдЯ рд╕рдХрддреЗ рд╣реИрдВред
  6. рдпрд╣ рдореБрдЦрд░ рдЕрд╡рд╕реНрдерд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╣рдо рджрд╛рд╡рд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХреНрд╖реБрджреНрд░рдЧреНрд░рд╣ рдХреА рд╕реНрдерд┐рддрд┐ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реНрдерд┐рддрд┐ рд╕реЗ рдХрдо рд╣реИ (рдЕрд░реНрдерд╛рдд рдпрд╣ рдиреАрдЪреЗ рдЪрд▓рд╛ рдЧрдпрд╛ рд╣реИ)ред рдЕрднрд┐рдХрдерди рдХреЛ рд╕рдордЭрдирд╛ рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рдХрд╛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ, рдФрд░ NUnit рд╡рд┐рднрд┐рдиреНрди рдореБрдЦрд░ рддрд░реАрдХреЗ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдкрд░реАрдХреНрд╖рд╛ рдкрд╛рд╕ рдХрд░рдирд╛ рдпрд╛ рди рдХрд░рдирд╛ рдЗрд╕ рд░реЗрдЦрд╛ рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реЛрддрд╛ рд╣реИред
  7. рдмреЗрд╢рдХ, рдХреЛрдИ рднреА рдЖрдкрдХреЛ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдЫреЛрдбрд╝реА рдЧрдИ рдЧрдВрджрдЧреА рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдбрд╛рдВрдЯреЗрдЧрд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдХрд╛рд░рдг рдЕрдиреНрдп рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдлрд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдпреВрдирд┐рдЯ рдЯреЗрд╕реНрдЯ рдХреЗ рдмрд╛рдж рдХреЛрдб рдХреЛ рд╕рд╛рдл рдХрд░рдирд╛ (рд╣рдЯрд╛рдирд╛ рдпрд╛ рд░реАрд╕реЗрдЯ рдХрд░рдирд╛) рд╣рдореЗрд╢рд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛрддрд╛ рд╣реИ, рддрд╛рдХрд┐ рдЬрдм рдЖрдк рдЕрдЧрд▓реА рдпреВрдирд┐рдЯ рдЯреЗрд╕реНрдЯ рдХреЛ рдЪрд▓рд╛рдПрдВ рддреЛ рдХреЛрдИ рдРрд╕реА рдХрд▓рд╛рдХреГрддрд┐рдпрд╛рдВ рди рдмрдЪреЗ рдЬреЛ рдЗрд╕ рдЯреЗрд╕реНрдЯ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░ рд╕рдХреЗред рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдмрд╕ рдЧреЗрдо рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рд╣рдо рдЧреЗрдо рдХрд╛ рдПрдХ рдирдпрд╛ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рддреЗ рд╣реИрдВред

рдкрд╛рд╕рд┐рдВрдЧ рдЯреЗрд╕реНрдЯ


рдареАрдХ рд╣реИ, рдЖрдкрдиреЗ рдЕрдкрдиреА рдкрд╣рд▓реА рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдХреИрд╕реЗ рдкрддрд╛ рдЪрд▓реЗрдЧрд╛ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ? рдмреЗрд╢рдХ, рдЯреЗрд╕реНрдЯ рд░рдирд░ рдХреЗ рд╕рд╛рде! рдЯреЗрд╕реНрдЯ рд░рдирд░ рд╡рд┐рдВрдбреЛ рдореЗрдВ, рддреАрд░ рдХреЗ рд╕рд╛рде рд╕рднреА рд▓рд╛рдЗрдиреЛрдВ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдВред рдЖрдкрдХреЛ рд╕реВрдЪреА рдореЗрдВ AsteroidsMoveDown рдХреЛ рдЧреНрд░реЗ рд╕рд░реНрдХрд▓ рдХреЗ рд╕рд╛рде рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдП:


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


рдпрд╣ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рджреГрд╢реНрдп рдмрдирд╛рдПрдЧрд╛ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдПрдЧрд╛ред рдкреВрд░рд╛ рд╣реЛрдиреЗ рдкрд░, рдЖрдкрдХреЛ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдкрд░реАрдХреНрд╖рдг рдкрд╛рд╕ рд╣реЛ рдЧрдпрд╛ред


рдЖрдкрдиреЗ рдЕрдкрдиреА рдкрд╣рд▓реА рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдпрд╣ рдХрд╣рддреЗ рд╣реБрдП рд▓рд┐рдЦрд╛ рд╣реИ рдХрд┐ рдирд┐рд░реНрдорд┐рдд рдХреНрд╖реБрджреНрд░рдЧреНрд░рд╣ рдиреАрдЪреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред

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

рдПрдХреАрдХрд░рдг рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛


рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдЦрд░рдЧреЛрд╢ рдЫреЗрдж рдореЗрдВ рдЧрд╣рд░рд╛рдИ рд╕реЗ рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рдмрддрд╛рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ рдХрд┐ рдПрдХреАрдХрд░рдг рдкрд░реАрдХреНрд╖рдг рдХреНрдпрд╛ рд╣реИрдВ рдФрд░ рд╡реЗ рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рд╕реЗ рдХреИрд╕реЗ рднрд┐рдиреНрди рд╣реИрдВред

рдПрдХреАрдХрд░рдг рдкрд░реАрдХреНрд╖рдг рдРрд╕реЗ рдкрд░реАрдХреНрд╖рдг рд╣реИрдВ рдЬреЛ рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХреЛрдб рдХреЗ "рдореЙрдбреНрдпреВрд▓" рдПрдХ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред "рдореЙрдбреНрдпреВрд▓" рдПрдХ рдФрд░ рдЕрд╕реНрдкрд╖реНрдЯ рд╢рдмреНрдж рд╣реИред рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдПрдХреАрдХрд░рдг рдкрд░реАрдХреНрд╖рдг рдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП (рдпрд╛рдиреА рдЬрдм рдХреЛрдИ рдЦрд┐рд▓рд╛рдбрд╝реА рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдИ рдЦреЗрд▓ рдЦреЗрд▓рддрд╛ рд╣реИ)ред


рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдЖрдкрдиреЗ рдПрдХ рдпреБрджреНрдз рдЦреЗрд▓ рдмрдирд╛рдпрд╛ рдЬрд╣рд╛рдВ рдПрдХ рдЦрд┐рд▓рд╛рдбрд╝реА рд░рд╛рдХреНрд╖рд╕реЛрдВ рдХреЛ рдорд╛рд░рддрд╛ рд╣реИред рдЖрдк рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдХреАрдХрд░рдг рдкрд░реАрдХреНрд╖рдг рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЬрдм рдХреЛрдИ рдЦрд┐рд▓рд╛рдбрд╝реА 100 рджреБрд╢реНрдордиреЛрдВ рдХреЛ рдорд╛рд░рддрд╛ рд╣реИ, рддреЛ рдПрдХ рдЙрдкрд▓рдмреНрдзрд┐ ("рдЙрдкрд▓рдмреНрдзрд┐") рдЦреЛрд▓реА рдЬрд╛рддреА рд╣реИред

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

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

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

рдПрдХ рдкрд░реАрдХреНрд╖рдг рд╕реВрдЯ рдореЗрдВ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдЬреЛрдбрд╝рдирд╛


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

 [UnityTest] public IEnumerator GameOverOccursOnAsteroidCollision() { GameObject gameGameObject = MonoBehaviour.Instantiate(Resources.Load<GameObject>("Prefabs/Game")); Game game = gameGameObject.GetComponent<Game>(); GameObject asteroid = game.GetSpawner().SpawnAsteroid(); //1 asteroid.transform.position = game.GetShip().transform.position; //2 yield return new WaitForSeconds(0.1f); //3 Assert.True(game.isGameOver); Object.Destroy(game.gameObject); } 

рд╣рдордиреЗ рдкрд┐рдЫрд▓реЗ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдЗрд╕ рдХреЛрдб рдХреЛ рдкрд╣рд▓реЗ рд╣реА рджреЗрдЦрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдХреБрдЫ рдЕрдВрддрд░ рд╣реИрдВ:

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

рдЯреЗрд╕реНрдЯ рд░рдирд░ рд╡рд┐рдВрдбреЛ рдкрд░ рд▓реМрдЯреЗрдВ рдФрд░ рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рд╡рд╣рд╛рдВ рдПрдХ рдирдИ рдпреВрдирд┐рдЯ рдЯреЗрд╕реНрдЯ рджрд┐рдЦрд╛рдИ рджреА рд╣реИред


рдЗрд╕ рдмрд╛рд░ рд╣рдо рдЗрд╕реЗ рдкреВрд░реЗ рдЯреЗрд╕реНрдЯ рд╕реВрдЯ рдХреЗ рдмрдЬрд╛рдп рдЪрд▓рд╛рдПрдВрдЧреЗред GameOverOccursOnAsteroidCollision рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ, рдФрд░ рдлрд┐рд░ рд░рди рдЪрдпрдирд┐рдд рдмрдЯрди рдкрд░ред


рдФрд░ рд╡реЛрдЗрд▓рд╛, рд╣рдордиреЗ рдПрдХ рдФрд░ рдкрд░реАрдХреНрд╖рд╛ рдкрд╛рд╕ рдХреАред


рдЯреНрдпреВрдирд┐рдВрдЧ рдФрд░ рд╡рд┐рдирд╛рд╢ рдХреЗ рдЪрд░рдгреЛрдВ


рдЖрдкрдиреЗ рджреЗрдЦрд╛ рд╣реЛрдЧрд╛ рдХрд┐ рд╣рдорд╛рд░реЗ рджреЛ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдмрд╛рд░-рдмрд╛рд░ рдХреЛрдб рд╣реЛрддрд╛ рд╣реИ: рдЬрд╣рд╛рдВ рдЧреЗрдо рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЬрд╣рд╛рдВ рдЧреЗрдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рд▓рд┐рдВрдХ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

 GameObject gameGameObject = MonoBehaviour.Instantiate(Resources.Load<GameObject>("Prefabs/Game")); game = gameGameObject.GetComponent<Game>(); 

рдЖрдк рдпрд╣ рднреА рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдЧреЗрдо рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╡рд┐рдирд╛рд╢ рдореЗрдВ рдПрдХ рджреЛрд╣рд░рд╛рд╡ рд╣реИ:

 Object.Destroy(game.gameObject); 

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

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

рдпрд╣ рд╕реЗрдЯрдЕрдк рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдХреЗ рдФрд░ рд╡рд┐рд╢реЗрд╖ рддрд░реАрдХреЛрдВ рд╕реЗ рдХреЛрдб рдХреЛ рдлрд╛рдбрд╝рдиреЗ рдХреЗ рджреНрд╡рд╛рд░рд╛ рд╣рдорд╛рд░реЗ рдЬреАрд╡рди рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред рдХреЛрдб рд╕рдВрдкрд╛рджрдХ рдЦреЛрд▓реЗрдВ рдФрд░ рдкрд╣рд▓реЗ [UnityTest] рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рдареАрдХ рдкрд╣рд▓реЗ TestSuite рдлрд╝рд╛рдЗрд▓ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдЬреЛрдбрд╝реЗрдВ:

 [SetUp] public void Setup() { GameObject gameGameObject = MonoBehaviour.Instantiate(Resources.Load<GameObject>("Prefabs/Game")); game = gameGameObject.GetComponent<Game>(); } 

SetUp рд╡рд┐рд╢реЗрд╖рддрд╛ рдЗрдВрдЧрд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдкрд░реАрдХреНрд╖рдг рдХреЗ SetUp рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

рдлрд┐рд░ рдирд┐рдореНрди рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝реЗрдВ рдФрд░ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рд╣реЗрдЬреЗрдВ:

 [TearDown] public void Teardown() { Object.Destroy(game.gameObject); } 

TearDown рд╡рд┐рд╢реЗрд╖рддрд╛ рдЗрдВрдЧрд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдкрд░реАрдХреНрд╖рдг рдХреЗ TearDown рдмрд╛рдж рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

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

 public class TestSuite { private Game game; [SetUp] public void Setup() { GameObject gameGameObject = MonoBehaviour.Instantiate(Resources.Load<GameObject>("Prefabs/Game")); game = gameGameObject.GetComponent<Game>(); } [TearDown] public void Teardown() { Object.Destroy(game.gameObject); } [UnityTest] public IEnumerator AsteroidsMoveDown() { GameObject asteroid = game.GetSpawner().SpawnAsteroid(); float initialYPos = asteroid.transform.position.y; yield return new WaitForSeconds(0.1f); Assert.Less(asteroid.transform.position.y, initialYPos); } [UnityTest] public IEnumerator GameOverOccursOnAsteroidCollision() { GameObject asteroid = game.GetSpawner().SpawnAsteroid(); asteroid.transform.position = game.GetShip().transform.position; yield return new WaitForSeconds(0.1f); Assert.True(game.isGameOver); } } 

рдкрд░реАрдХреНрд╖рдг рдЧреЗрдо рдУрд╡рд░ рдФрд░ рд▓реЗрдЬрд░ рд╢реВрдЯрд┐рдВрдЧ


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

 [UnityTest] public IEnumerator NewGameRestartsGame() { //1 game.isGameOver = true; game.NewGame(); //2 Assert.False(game.isGameOver); yield return null; } 

рдпрд╣ рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬрд╛рдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрд▓реНрд▓реЗрдЦ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ:

  1. рдХреЛрдб рдХрд╛ рдпрд╣ рдЯреБрдХрдбрд╝рд╛ gameOver рдмреВрд▓рд┐рдпрди рдзреНрд╡рдЬ рдХреЗ рд╕рддреНрдп рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдкрд░реАрдХреНрд╖рдг рдХреЛ рддреИрдпрд╛рд░ рдХрд░рддрд╛ рд╣реИред NewGame рдкрджреНрдзрддрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ NewGame , рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдзреНрд╡рдЬ рдХреЛ false рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
  2. рдпрд╣рд╛рдБ рд╣рдо рддрд░реНрдХ рджреЗрддреЗ рд╣реИрдВ рдХрд┐ рдмреВрд▓ isGameOver false , рдЬреЛ рдПрдХ рдирдП рдЧреЗрдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╕рдордп рд╕рд╣реА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЯреЗрд╕реНрдЯ рд░рдирд░ рдкрд░ рд▓реМрдЯреЗрдВ рдФрд░ рдЖрдкрдХреЛ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдПрдХ рдирдпрд╛ рдЯреЗрд╕реНрдЯ рдиреНрдпреВрдЧреИрдорд░реЗрд╕реНрдЯрд╛рд░реНрд╕рдЧреИрдо рд╣реИ ред рдЗрд╕ рдкрд░реАрдХреНрд╖рдг рдХреЛ рдЪрд▓рд╛рдПрдВ, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдкрд╣рд▓реЗ рдХрд┐рдпрд╛ рдерд╛, рдФрд░ рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдпрд╣ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЪрд▓рддрд╛ рд╣реИ:


рд▓реЗрдЬрд░ рдмреАрдо рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ


рдЕрдЧрд▓рд╛ рдкрд░реАрдХреНрд╖рдг рдпрд╣ рдкрд░реАрдХреНрд╖рдг рдЬреЛрдбрд╝рдирд╛ рд╣реИ рдХрд┐ рдЬрд╣рд╛рдЬ рджреНрд╡рд╛рд░рд╛ рдирд┐рдХрд╛рд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд▓реЗрдЬрд░ рдмреАрдо рдКрдкрд░ рдЙрдбрд╝ рд░рд╣рд╛ рд╣реИ (рдкрд╣рд▓реА рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд╕рдорд╛рди)ред рд╕рдВрдкрд╛рджрдХ рдореЗрдВ TestSuite рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реЗрдВред рдирд┐рдореНрди рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝реЗрдВ рдФрд░ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рд╣реЗрдЬреЗрдВ:

 [UnityTest] public IEnumerator LaserMovesUp() { // 1 GameObject laser = game.GetShip().SpawnLaser(); // 2 float initialYPos = laser.transform.position.y; yield return new WaitForSeconds(0.1f); // 3 Assert.Greater(laser.transform.position.y, initialYPos); } 

рдпрд╣рд╛рдБ рд╣реИ рдХрд┐ рдпрд╣ рдХреЛрдб рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ:

  1. рдЬрд╣рд╛рдЬ рд╕реЗ рдирд┐рдХрд▓рдиреЗ рд╡рд╛рд▓реА рдЙрддреНрдкрдиреНрди рд▓реЗрдЬрд░ рдмреАрдо рдХрд╛ рд▓рд┐рдВрдХ рдорд┐рд▓рддрд╛ рд╣реИред
  2. рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реНрдерд┐рддрд┐ рджрд░реНрдЬ рдХреА рдЬрд╛рддреА рд╣реИ рддрд╛рдХрд┐ рд╣рдо рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░ рд╕рдХреЗрдВ рдХрд┐ рдпрд╣ рдмрдврд╝ рд░рд╣рд╛ рд╣реИред
  3. рдпрд╣ рдХрдерди AsteroidsMoveDown рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдмрдпрд╛рди рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИ, рдХреЗрд╡рд▓ рдЕрдм рд╣рдо рджрд╛рд╡рд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдореВрд▓реНрдп рдЕрдзрд┐рдХ рд╣реИ (рдпрд╛рдиреА, рд▓реЗрдЬрд░ рдКрдкрд░ рдмрдврд╝рддрд╛ рд╣реИ)ред

рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рд╣реЗрдЬреЗрдВ рдФрд░ рдЯреЗрд╕реНрдЯ рд░рдирд░ рдкрд░ рд▓реМрдЯреЗрдВред LaserMovesUp рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдПрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдЧреБрдЬрд░рддрд╛ рд╣реИ:


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

рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдирд╛ рдХрд┐ рд▓реЗрдЬрд░ рдХреНрд╖реБрджреНрд░рдЧреНрд░рд╣реЛрдВ рдХреЛ рдирд╖реНрдЯ рдХрд░ рджреЗрддрд╛ рд╣реИ


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

 [UnityTest] public IEnumerator LaserDestroysAsteroid() { // 1 GameObject asteroid = game.GetSpawner().SpawnAsteroid(); asteroid.transform.position = Vector3.zero; GameObject laser = game.GetShip().SpawnLaser(); laser.transform.position = Vector3.zero; yield return new WaitForSeconds(0.1f); // 2 UnityEngine.Assertions.Assert.IsNull(asteroid); } 

рдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:

  1. рд╣рдо рдПрдХ рдХреНрд╖реБрджреНрд░рдЧреНрд░рд╣ рдФрд░ рдПрдХ рд▓реЗрдЬрд░ рдмреАрдо рдмрдирд╛рддреЗ рд╣реИрдВ, рдФрд░ рдЯрдХрд░рд╛рд╡ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╣реА рд╕реНрдерд┐рддрд┐ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред
  2. рдпрд╣ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдВрддрд░ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкрд░реАрдХреНрд╖рдг рд╣реИред рджреЗрдЦреЗрдВ рдХрд┐ рд╣рдо рдЗрд╕ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ UnityEngine.Assertions рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ ? рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдПрдХрддрд╛ рдореЗрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЕрд╢рдХреНрдд рд╡рд░реНрдЧ рд╣реИ рдЬреЛ "рдирд┐рдпрдорд┐рдд" рдЕрд╢рдХреНрдд рд╡рд░реНрдЧ рд╕реЗ рдЕрд▓рдЧ рд╣реИред рдирд▓ рдХреЗ рд▓рд┐рдП рдпреВрдирд┐рдЯреА рдЪреЗрдХ рдореЗрдВ NUnit рдлреНрд░реЗрдорд╡рд░реНрдХ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ Assert.IsNull() рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ ред рдПрдХрддрд╛ рдореЗрдВ рдЕрд╢рдХреНрддрддрд╛ рдХреА рдЬрд╛рдБрдЪ рдХрд░рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдпреВрдирд┐рдЯреА рдПрдВрдЬрд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЯреЗрд╕реНрдЯ рд░рдирд░ рдкрд░ рд▓реМрдЯреЗрдВ рдФрд░ рдПрдХ рдирдпрд╛ рдЯреЗрд╕реНрдЯ рдЪрд▓рд╛рдПрдВред рдЖрдк рдПрдХ рд╣рд░реЗ рд░рдВрдЧ рдХрд╛ рдЖрдЗрдХрди рд╣рдореЗрдВ рдкреНрд░рд╕рдиреНрди рдХрд░рддреЗ рджреЗрдЦреЗрдВрдЧреЗред


рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдпрд╛ рди рдХрд░рдирд╛ - рдпрд╣реА рдкреНрд░рд╢реНрди рд╣реИ


рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдгреЛрдВ рд╕реЗ рдЪрд┐рдкрдХреЗ рд░рд╣рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рдПрдХ рдЖрд╕рд╛рди рдирд┐рд░реНрдгрдп рдирд╣реАрдВ рд╣реИ рдФрд░ рдЗрд╕реЗ рд╣рд▓реНрдХреЗ рдореЗрдВ рдирд╣реАрдВ рд▓рд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХрд╛ рд▓рд╛рдн рдкреНрд░рдпрд╛рд╕ рдХреЗ рд▓рд╛рдпрдХ рд╣реИред рдпрд╣рд╛рдВ рддрдХ рдХрд┐ рдПрдХ рд╡рд┐рдХрд╛рд╕ рдХрд╛рд░реНрдпрдкреНрд░рдгрд╛рд▓реА, рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдкрд░реАрдХреНрд╖рдг рдЪрд╛рд▓рд┐рдд рд╡рд┐рдХрд╛рд╕ (рдЯреЗрд╕реНрдЯ рдкреНрд░реЗрд░рд┐рдд рд╡рд┐рдХрд╛рд╕, TDD)ред

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

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

: тАФ , . , . ┬л┬╗ , , . , . , . , , .

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

рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдг рд▓рд╛рдн


рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдХрдИ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдлрд╛рдпрджреЗ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рдирд┐рдореНрди рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:

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

рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдг рдиреБрдХрд╕рд╛рди


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

  • рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрдиреЗ рдореЗрдВ рдХреЛрдб рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдордп рд▓рдЧ рд╕рдХрддрд╛ рд╣реИред
  • .
  • .
  • , .
  • , -.
  • ( ), .
  • - .
  • UI .
  • .
  • .

,


рдЕрдВрддрд┐рдо рдкрд░реАрдХреНрд╖рд╛ рд▓рд┐рдЦрдиреЗ рдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИред рдХреЛрдб рд╕рдВрдкрд╛рджрдХ рдЦреЛрд▓реЗрдВ, рдиреАрдЪреЗ рдХреЛрдб рдХреЛ TestSuite рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ рдФрд░ рдЗрд╕реЗ рд╕рд╣реЗрдЬреЗрдВ:

 [UnityTest] public IEnumerator DestroyedAsteroidRaisesScore() { // 1 GameObject asteroid = game.GetSpawner().SpawnAsteroid(); asteroid.transform.position = Vector3.zero; GameObject laser = game.GetShip().SpawnLaser(); laser.transform.position = Vector3.zero; yield return new WaitForSeconds(0.1f); // 2 Assert.AreEqual(game.score, 1); } 

рдпрд╣ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкрд░реАрдХреНрд╖рд╛ рд╣реИ, рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реБрдП рдХрд┐ рдЬрдм рдХреЛрдИ рдЦрд┐рд▓рд╛рдбрд╝реА рдХрд┐рд╕реА рдХреНрд╖реБрджреНрд░рдЧреНрд░рд╣ рдХреЛ рдирд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╕реНрдХреЛрд░ рдмрдврд╝ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╡рд╣ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рд╢рд╛рдорд┐рд▓ рд╣реИ:

  1. рд╣рдо рдПрдХ рдХреНрд╖реБрджреНрд░рдЧреНрд░рд╣ рдФрд░ рдПрдХ рд▓реЗрдЬрд░ рдмреАрдо рдмрдирд╛рддреЗ рд╣реИрдВ, рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд░рдЦрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдХрд╛рд░рдг, рдПрдХ рдЯрдХрд░рд╛рд╡ рдкреИрджрд╛ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рд╕реНрдХреЛрд░ рдореЗрдВ рд╡реГрджреНрдзрд┐ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИред
  2. рдпрд╣ рдХрдерди рдХрд┐ game.score рдЕрдм 1 рд╣реИ (рдФрд░ 0 рдирд╣реАрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рд╢реБрд░реБрдЖрдд рдореЗрдВ рдерд╛)ред

рдХреЛрдб рдХреЛ рд╕рд╣реЗрдЬреЗрдВ рдФрд░ рдЗрд╕ рдЕрдВрддрд┐рдо рдкрд░реАрдХреНрд╖рдг рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреЗрд╕реНрдЯ рд░рдирд░ рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдЧреЗрдо рдЪрд▓рд╛рддрд╛ рд╣реИ:


рдмрд╣реБрдд рдЦреВрдм! рд╕рднреА рдЯреЗрд╕реНрдЯ рдкрд╛рд╕ рдХрд░ рд▓рд┐рдПред

рдЖрдЧреЗ рдХрд╣рд╛рдБ рдЬрд╛рдирд╛ рд╣реИ?


рд▓реЗрдЦ рдореЗрдВ рд╣рдордиреЗ рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреА рдЬрд╛рдВрдЪ рдХреАред рдпрджрд┐ рдЖрдк рдЕрдВрддрд┐рдо рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рдХрд╛рдо рдХреА рддреБрд▓рдирд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рджреЗрдЦреЗрдВ , рдПрдХ рд▓рд┐рдВрдХ рдЬрд┐рд╕реЗ рд▓реЗрдЦ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рднреА рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

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

рдЖрддреНрдорд╡рд┐рд╢реНрд╡рд╛рд╕ рдорд╣рд╕реВрд╕ рд╣реЛ рд░рд╣рд╛ рд╣реИ? рдлрд┐рд░ рдЖрдк рдХрдИ рдФрд░ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред рдЧреЗрдо рдХреА рдХреНрд▓рд╛рд╕ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ рдФрд░ рдХреЛрдб рдХреЗ рдЕрдиреНрдп рднрд╛рдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдЬреЛрдбрд╝рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:

  • рдЬрдм рдЖрдк рдЬрд╣рд╛рдЬ рдХреЛ рдЫреВрддреЗ рд╣реИрдВ рддреЛ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдХреНрд╖реБрджреНрд░рдЧреНрд░рд╣ рдЦреЗрд▓ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЬрд╛рддрд╛ рд╣реИред
  • рдПрдХ рдирдпрд╛ рдЧреЗрдо рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рд╕реНрдХреЛрд░ рд░реАрд╕реЗрдЯ рд╣реЛрддрд╛ рд╣реИред
  • рдЬрд╣рд╛рдЬ рдХреЗ рд▓рд┐рдП рдмрд╛рдПрдБ рдФрд░ рджрд╛рдПрдБ рд╣рд┐рд▓рдирд╛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред

рдпрджрд┐ рдЖрдк рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдЕрдкрдиреЗ рдЬреНрдЮрд╛рди рдХреЛ рдмрдврд╝рд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдирдХрд▓реА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрднрд░рддрд╛ рдФрд░ рд░реВрдкрд░реЗрдЦрд╛ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдЦреЛрдЬ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ ред рдпрд╣ рдкрд░реАрдХреНрд╖рдг рд╕реЗрдЯрдЕрдк рдХреЛ рдмрд╣реБрдд рд╕рд░рд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реИред NUnit рдврд╛рдВрдЪреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдиреЗ рдХреЗ

рд▓рд┐рдП NUnit рдкреНрд░рд▓реЗрдЦрди рднреА рдкрдврд╝реЗрдВ ред

рдФрд░ рдЕрдкрдиреЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдФрд░ рд╕рд╡рд╛рд▓реЛрдВ рдХреЛ рдордВрдЪреЛрдВ рдкрд░ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВред

рд╕рдлрд▓ рдкрд░реАрдХреНрд╖рдг!

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


All Articles