Unity Test Framework (UTF)

Unity Test Framework (UTF)

Unity Test Framework (UTF) มีไว้สำหรับให้ผู้ใช้ Unity สามารถทดสอบโค้ดของตัวเองได้ โดยมี 2 โหมด คือ Edit Mode และ Play Mode

Edit Mode vs. Play Mode tests

Edit Mode tests

Edit Mode tests (หรือในอีกชื่อคือ Editor tests) จะ run เฉพาะแค่ใน Unity Editor เท่านั้น และสามารถเข้าถึงโค้ดใน Editor ได้

Play Mode tests

เราสามารถใช้ Play Mode tests เพื่อ run test แบบ standalone ใน Player หรือแบบใน Editor โดยการ run test ใน Play Mode จะทำการ run แบบ coroutines โดยใส่ marked ด้วย UnityTest attribute

การติดตั้ง Unity Test Framework

ในหน้า Unity ให้ไปที่ Package Manager (ในเมนูด้านบนของ Unity: Window > Package Manager) จากนั้นค้นหา Test Framework แล้วกด Install

วิธีใช้งาน Unity Test Framework

ใน Unity Editor ให้เปิด Test Runner ขึ้นมาโดยไปที่ Window > General > Test Runner

จะปรากฎหน้าต่างของ Test Runner ขึ้นมา

การสร้าง Test Assembly Folder

Unity Test Framework จะหา Folder ที่มีไฟล์ Assembly Definition Asset (.asmdef) เราเรียกไฟล์เหล่านี้ว่า TestAssemblies โดยที่ Edit Mode และ Play Mode จะต้องไม่อยู่ใน Assembly เดียวกัน

เราสามารถสร้างโฟลเดอร์เหล่านั้นได้โดยการกดที่ปุ่ม Create EditMode Test Assembly Folder บนหน้าต่าง Test Runner หรือไปที่เมนู Assets > Create > Testing > Tests Assembly Folder
โดยค่าเริ่มต้นของการสร้าง Tests Assembly Folder ด้วยเมนู Assets นั้น จะเป็น Play Mode test หากต้องการเปลี่ยนเป็น Editor Mode test ให้เลือก Tests.asmdef ไปที่หน้าต่าง Inspector ในส่วนของ Platforms ให้เลือกเฉพาะ Editor เท่านั้น

การสร้าง Test ใหม่

เราสามารถสร้าง Test ใหม่ได้โดยการกดที่ปุ่ม Create Test Script in current folder โดยจะต้องเลือก Assembly Folder ที่สร้างไว้ก่อนหน้านี้ หรือกดคลิ๊กขวาในหน้าต่าง Project เลือก Create > Testing > C# Test Script

การ Run test

สามารถกด Run All เพื่อ run ทุก test หรือ Run Selected เพื่อ run แค่เฉพาะ test ที่เลือกได้ที่หน้าต่าง Test Runner
ลองเขียน test ให้ fail ดู โดยเราใช้ Assert ในการ test 
ยกตัวอย่างเป็นตรวจสอบว่า 1 = 2 หรือไม่
ลอง run test ดู ก็จะพบว่ามันไม่ผ่าน test

game blog w16-1

  Summary   Centent ใน week ที่ 16-1 มีดังนี้   - Human player turn to ghost when died    - Ghost bot (path finding with project A*)   Human...