Unity Testing - zzragida/UnityDocs GitHub Wiki

Reference

Unit Testing

  • TDD์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ํ•„์š”ํ•จ
    • TDD์˜ ๋ฌธํ™”์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ํ•„์š”ํ•จ
    • TDD์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์šฉ์–ด์™€ ์šฉ์–ด๋“ค์ด ์™œ? ์‚ฌ์šฉ๋˜๋Š”์ง€ ์ดํ•ดํ•ด์•ผ ํ•จ
    • Arrange/Act/Assert. Mock, Fake, Stub ๋“ฑ...
    • ์‹œ์Šคํ…œ ์„ค๊ณ„ ๋˜ํ•œ TDD์— ์ ํ•ฉํ•œ ํ˜•ํƒœ๋กœ ์„ค๊ณ„๋˜์–ด์•ผ ํ•จ
  • Visual Studio์™€ ์—ฐ๋™ํ•ด์„œ Unit Test๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์€ ์—†์„๊นŒ? Unity๋ž‘ VS ์™”๋‹ค ๊ฐ”๋‹คํ•˜๊ธฐ ์งฑ๋‚จ
    • UnitTestRunner ์„ค์ •์„ "Run on Recompile"๋กœ ๋ณ€๊ฒฝํ•ด ๋†“์œผ๋ฉด ์œ ๋‹ˆํ‹ฐ ์ปดํŒŒ์ผ ์‹œ์ ๋งˆ๋‹ค ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•จ
    • ์œ„ ์„ค์ •๋Œ€๋กœ ํ•˜๋ฉด ์กฐ๊ธˆ์€ ์‚ฌ์šฉํ•˜๊ธฐ ํŽธ๋ฆฌํ•ด ์ง
  • ๋นŒ๋“œ์‹œ์— ํ…Œ์ŠคํŠธ ๋ฆฌ์†Œ์Šค(์†Œ์Šค)๋“ค์„ ๋ถ„๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š”์ง€?
    • ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋“ค์€ Editor ํด๋”๋ฐ‘์— ์ž‘์„ฑ๋˜์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋นŒ๋“œ์‹œ์—๋Š” ํฌํ•จ๋˜์ง€ ์•Š์Œ
  • ๋‹จ์œ„ ํ…Œ์ŠคํŠธ์— ํ•„์š”ํ•œ ๋„๊ตฌ๋“ค
    • Unity Test Tools์—์„œ๋Š” NUnit, NSubstitute ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•จ
    • NSubstitue๋กœ Mock, Fake, Stub ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Œ
  • Headless running (batch mode)
    • resultFilePath
    • filter
    • categories
    • ex) Unity.exe -batchmode -nographics -executeMethod UnityTest.Batch.RunUnitTests -resultFilePath=C:\temp\results.xml -quit

Assertion component

  • ์œ ๋‹ˆํ‹ฐ ์—๋””ํ„ฐ๋งŒ์„ ์ด์šฉํ•ด์„œ ๊ฒŒ์ž„์˜ค๋ธŒ์ ํŠธ์˜ ์ •๋ณด๋ฅผ ๋น„๊ตํ•˜๋Š” ํ…Œ์ŠคํŠธ

Integration Test

  • https://bitbucket.org/Unity-Technologies/unitytesttools/wiki/IntegrationTestsRunner
  • ๊ฐ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ํ…Œ์ŠคํŠธ ์กฐ๊ฑด์— ๋งž์ถฐ์„œ ๊ฒ€์ฆ
  • ํ…Œ์ŠคํŠธ ๋กœ๋”ฉ์‹œ๊ฐ„์ด ๊ธธ๊ธฐ ๋•Œ๋ฌธ์— ์ ์šฉ์—ฌ๋ถ€๋Š” ์กฐ๊ธˆ ์ƒ๊ฐํ•ด ๋ณด์ž
  • ํ™œ์šฉํ•  ๋Œ€์ƒ
    • UI ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ํ…Œ์ŠคํŠธ
    • UI๋ฅผ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ํ•˜๋ฉด์„œ ๊ฐ ์˜ค๋ธŒ์ ํŠธ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ๋กœ๋”ฉ๋˜๋Š”์ง€ ํ™•์ธ
  • Headless running (batch mode)
    • testscenes
    • pattern : "*Test[s].unity"
    • targetPlatform
    • resultsFileDirectory
    • ex) Unity.exe -batchmode -executeMethod UnityTest.Batch.RunIntegrationTests -testscenes=TestScene1,TestScene2 -targetPlatform=StandaloneWindows -resultsFileDirectory=C:\temp\