สร้างการทดสอบหน่วยด้วยมุมมอง GitHub Copilot Chat
มุมมองแชทใน Visual Studio Code เป็นที่หลักในการสร้างการทดสอบหน่วยด้วย GitHub Copilot จากมุมมอง Chat คุณสามารถกําหนดค่าเฟรมเวิร์กการทดสอบ สร้างการทดสอบสําหรับไฟล์หรือส่วนที่เลือก และปรับแต่งผลลัพธ์จนกว่าการทดสอบจะตรงกับแบบแผนของโปรเจ็กต์ของคุณ หน่วยนี้มุ่งเน้นไปที่ โหมดเอเจนต์ ซึ่งเขียนการทดสอบที่สร้างขึ้นโดยตรงลงในไฟล์ทดสอบ สามารถเรียกใช้การทดสอบผลลัพธ์ และทําซ้ําความล้มเหลว ทั้งหมดนี้ทําได้จากพรอมต์แชทเดียว คุณยังสามารถใช้ โหมดถาม ล่วงหน้าเพื่อสํารวจตัวเลือกการทดสอบของคุณโดยไม่ต้องทําการเปลี่ยนแปลงไฟล์ใดๆ
เปิดมุมมองแชท
เปิดมุมมอง Chat โดยใช้ตัวเลือกใดตัวเลือกหนึ่งต่อไปนี้
- กด Ctrl + Alt + I (Windows/Linux) หรือ Cmd + Alt + I (macOS)
- เลือกไอคอน GitHub Copilot ในแถบชื่อเรื่อง แล้วเลือก สลับแชท
มุมมอง Chat จะเปิดขึ้นในแถบด้านข้างรอง และมีตัวเลือกการกําหนดค่า 3 แบบที่ส่งผลต่อทุกข้อความแจ้งที่คุณส่ง
- เป้าหมายของเอเจนต์: ตําแหน่งที่เอเจนต์ทํางาน เลือก ภายในเครื่อง เพื่อเรียกใช้ตัวแทนแบบโต้ตอบในตัวแก้ไขด้วยการเข้าถึงพื้นที่ทํางาน เครื่องมือ และโมเดลของคุณอย่างเต็มรูปแบบ
- ตัวแทน: บทบาทที่ AI ใช้สําหรับเซสชัน ตัวแทนภายในเครื่องในตัวคือ Ask, Plan และ Agent
- ระดับสิทธิ์: เอเจนต์มีอิสระมากน้อยเพียงใดเมื่อเรียกใช้เครื่องมือและคําสั่งเทอร์มินัล ตัวเลือกคือ การอนุมัติเริ่มต้น การอนุมัติบายพาส และระบบขับเคลื่อนอัตโนมัติ
สําหรับการสร้างการทดสอบหน่วย จุดเริ่มต้นที่แนะนําคือ เอเจนต์ที่มีการอนุมัติเริ่มต้น โหมดเอเจนต์สามารถแก้ไขไฟล์ เรียกใช้คําสั่งเทอร์มินัล และเรียกใช้การทดสอบซ้ํา ดังนั้นจึงสามารถใช้พรอมต์ เช่น "สร้างการทดสอบสําหรับวิธีนี้" และสร้างไฟล์ทดสอบที่ใช้งานได้ซึ่งคุณต้องตรวจสอบเท่านั้น การอนุมัติเริ่มต้นช่วยให้คุณอยู่ในวงโดยขอให้คุณยืนยันการเรียกใช้เครื่องมือแต่ละรายการ
หรือใช้โหมดถามเพื่อสํารวจตัวเลือกการทดสอบก่อน
โหมดถามจะตอบคําถามในแชทโดยไม่ต้องแก้ไขไฟล์หรือเรียกใช้เครื่องมือ นั่นทําให้เหมาะอย่างยิ่งเมื่อคุณต้องการวางแผนแนวทางก่อนที่คุณจะปล่อยให้เอเจนท์เปลี่ยนแปลงอะไร ใช้โหมดถามเมื่อต้องการทําสิ่งต่อไปนี้
- เปรียบเทียบกรณีทดสอบผู้สมัครสําหรับวิธีการที่ซับซ้อนก่อนที่จะตกลงกับโครงสร้าง
- ระบุกรณีขอบและเงื่อนไขขอบเขตที่ควรค่าแก่การครอบคลุม
- รับคําแนะนําสําหรับกรอบการทดสอบหรือรูปแบบการยืนยัน
- ดูตัวอย่างการทดสอบในแชทโดยไม่ต้องเขียนลงในดิสก์
วิธีใช้โหมดถามในการวิเคราะห์
เปิดมุมมอง แชท และเลือก ถาม จากตัวเลือกตัวแทน
แนบไฟล์หรือส่วนที่เลือกที่เกี่ยวข้องเป็นบริบท (ตัวอย่างเช่น มี
#selectionหรือโดยการลากไฟล์เข้าไป)ถามคําถามการวิเคราะห์ ตัวอย่างเช่น:
What edge cases should I cover when testing the CalculateDiscount method? List the scenarios and explain why each one matters.ตรวจสอบการตอบกลับ จากนั้นสลับตัวเลือกตัวแทนเป็น ตัวแทน เพื่อสร้างการทดสอบจริง
ตั้งค่าเฟรมเวิร์กการทดสอบด้วย /setupTests
หากโครงการของคุณยังไม่ได้กําหนดค่าเฟรมเวิร์กการทดสอบ GitHub Copilot สามารถแนะนําและแนะนําคุณตลอดขั้นตอนการกําหนดค่า
/setupTestsคําสั่งเครื่องหมายทับใช้งานได้กับเอเจนต์ใดก็ได้ แต่โหมดเอเจนต์ยังสามารถติดตั้งแพ็คเกจและสร้างโปรเจ็กต์ทดสอบให้คุณได้อีกด้วย
เปิดมุมมอง แชท และเลือก ตัวแทน จากตัวเลือกตัวแทน
ป้อน
/setupTestsคําสั่งในช่องป้อนข้อมูลแชทยืนยันการเรียกใช้เครื่องมือและคําสั่งเทอร์มินัลที่เอเจนต์แนะนําให้ติดตั้งแพ็คเกจ นั่งร้านโปรเจ็กต์ทดสอบ และแนะนําส่วนขยายการทดสอบ Visual Studio Code
/setupTests มีประโยชน์มากที่สุดเมื่อคุณเริ่มต้นโครงการทดสอบใหม่หรือการเตรียมความพร้อมโครงการที่ยังไม่มีการทดสอบ
สร้างการทดสอบด้วย /tests
/testsคําสั่งเครื่องหมายทับจะสร้างการทดสอบหน่วยสําหรับโค้ดที่ใช้งานอยู่ในตัวแก้ไขในปัจจุบัน ในโหมดเอเจนต์ การทดสอบที่สร้างขึ้นจะถูกเขียนลงในไฟล์ทดสอบที่เหมาะสมโดยตรง GitHub Copilot ตรวจพบเฟรมเวิร์กการทดสอบและรูปแบบการเข้ารหัสที่มีอยู่ และสร้างการทดสอบที่ตรงกัน
ในการสร้างการทดสอบสําหรับทั้งไฟล์:
เปิดไฟล์รหัสแอปพลิเคชันที่คุณต้องการทดสอบ
เปิดมุมมอง แชท และยืนยันว่าได้เลือก ตัวแทน แล้ว
ในช่องป้อนข้อมูลแชท ให้ป้อน
/testsตามด้วยคําแนะนําเพิ่มเติม ตัวอย่างเช่น:/tests Generate unit tests for the methods in this file. Include success, failure, and edge cases.ยืนยันการเรียกใช้เครื่องมือที่เอเจนต์ใช้เพื่ออ่านบริบท เขียนการทดสอบ และเรียกใช้ (หรือ)
ตรวจสอบการเปลี่ยนแปลงที่เอเจนต์นําไปใช้
เอเจนต์ผนวกการทดสอบไปยังไฟล์ทดสอบที่มีอยู่เมื่อพร้อมใช้งาน หรือสร้างไฟล์ทดสอบใหม่ในตําแหน่งที่เหมาะสม ความแตกต่างจะปรากฏในตัวแก้ไขเพื่อให้คุณสามารถตรวจสอบการเปลี่ยนแปลงแต่ละรายการได้
เลือก เก็บไว้ หรือ เลิกทํา เพื่อยอมรับหรือละทิ้งการเปลี่ยนแปลง
เมื่อต้องการสร้างการทดสอบสําหรับวิธีการหรือบล็อกโค้ดเฉพาะ:
เปิดไฟล์รหัสแอปพลิเคชัน
เลือกวิธีการหรือบล็อกที่คุณต้องการทดสอบ
ในมุมมอง แชท ให้ป้อน
/testsตามด้วยคําแนะนําที่อ้างอิงการเลือก ตัวอย่างเช่น:/tests Generate unit tests for the selected method. Validate both success and failure, and include edge cases.ตรวจทานและเก็บหรือละทิ้งการเปลี่ยนแปลงที่เกิดขึ้น
สร้างการทดสอบด้วยข้อความแจ้งภาษาธรรมชาติ
คุณไม่จําเป็นต้องใช้คําสั่งทับ เอเจนต์สร้างการทดสอบจากข้อความแจ้งภาษาธรรมชาติเมื่อคุณใส่บริบทเพียงพอ ตัวอย่าง:
- "สร้างการทดสอบ xUnit สําหรับวิธีการในไฟล์นี้และเพิ่มลงในโครงการ Calculator.Tests"
- "เขียนการทดสอบหน่วยสําหรับ
CalculateDiscountวิธีการ รวมถึงกรณีขอบสําหรับค่าลบและศูนย์ เรียกใช้การทดสอบหลังจากเขียนแล้ว" - "สร้างการทดสอบการรวมสําหรับเลเยอร์การเข้าถึงข้อมูลในโมดูลนี้"
เนื่องจากเอเจนต์สามารถเรียกใช้คําสั่งได้ คุณจึงสามารถรวมขั้นตอนการตรวจสอบในพรอมต์เดียวกันได้ การขอให้เอเจนต์เรียกใช้การทดสอบหลังจากเขียนการทดสอบจะช่วยให้สามารถตรวจจับและแก้ไขความล้มเหลวที่เห็นได้ชัดก่อนที่จะส่งงานกลับให้คุณ
เพิ่มบริบทให้กับข้อความแจ้งของคุณ
คุณภาพของการทดสอบที่สร้างขึ้นจะขึ้นอยู่กับบริบทที่คุณระบุ ใช้ตัวเลือกต่อไปนี้อย่างน้อย 1 ตัวเลือกเพื่อแนบบริบทกับข้อความแจ้งมุมมอง Chat
- ปุ่มเพิ่มบริบท: เปิด เลือกด่วน เพื่อเพิ่มไฟล์ โฟลเดอร์ สัญลักษณ์ หรือการเลือกตัวแก้ไขปัจจุบัน
- ลากและวาง: ลากไฟล์จากมุมมอง Explorer หรือลากแท็บเครื่องมือแก้ไขไปยังมุมมองแชทเพื่อแนบเนื้อหา
-
#กล่าวถึง: พิมพ์#ตามด้วยชื่อไฟล์ โฟลเดอร์ หรือสัญลักษณ์เพื่อเพิ่มเป็นบริบท ใช้#selectionเพื่อแนบการเลือกตัวแก้ไขปัจจุบัน หรือ#codebaseเพื่อให้ GitHub Copilot ค้นหาบริบทที่เกี่ยวข้องในพื้นที่ทํางาน - ไฟล์ภายนอก: เปิดไฟล์มาร์กดาวน์ (เช่น หลักเกณฑ์ของผู้ร่วมให้ข้อมูลหรือแบบแผนการทดสอบ) ในตัวแก้ไขและแนบผ่าน Add Context เอเจนต์ใช้เนื้อหาเพื่อกําหนดรูปแบบการทดสอบที่สร้างขึ้น
ตัวอย่างเช่น หากเมธอดเดียวปรากฏในตัวแก้ไข คุณสามารถถาม: Write a unit test for the method in #editor หากมองเห็นได้หลายวิธีหรือเมธอดเป้าหมายขยายเกินพื้นที่ที่มองเห็นได้ ให้เลือกรหัสก่อนแล้วถาม: #selection write unit tests for the selected code
ตรวจสอบและปรับแต่งการเปลี่ยนแปลงของเอเจนต์
แม้ว่าเอเจนต์จะเขียนการทดสอบลงในโปรเจ็กต์ทดสอบของคุณโดยตรง แต่คุณก็ยังคงควบคุมได้:
- ตรวจสอบความแตกต่าง: แต่ละไฟล์ที่เอเจนต์เปลี่ยนแปลงจะเปิดขึ้นในตัวแก้ไขพร้อมกับไฮไลต์การแก้ไขที่เสนอ เดินผ่านความแตกต่างก่อนยอมรับ
- เก็บหรือเลิกทํา: ใช้ Keep เพื่อยอมรับการเปลี่ยนแปลง หรือ เลิกทํา เพื่อแปลงกลับ คุณยังสามารถย้อนกลับแต่ละก้อนจากตัวแก้ไขได้อีกด้วย
- สร้างและเรียกใช้: หลังจากเก็บการเปลี่ยนแปลงไว้แล้ว ให้สร้างโครงการทดสอบและเรียกใช้การทดสอบจาก Test Explorer หรือเทอร์มินัลเพื่อยืนยันว่าทุกอย่างคอมไพล์และผ่าน
- ทําซ้ํา: ใช้ข้อความแจ้งติดตามผลในเซสชันแชทเดียวกันเพื่อปรับแต่งการทดสอบเฉพาะ เพิ่มกรณีและปัญหาเพิ่มเติม หรือเปลี่ยนชื่อวิธีการ
ปรับแต่งการสร้างการทดสอบในแบบของคุณด้วยคําแนะนําที่กําหนดเอง
หากองค์กรของคุณมีข้อกําหนดในการทดสอบเฉพาะ คุณสามารถปรับแต่งวิธีที่ GitHub Copilot สร้างการทดสอบเพื่อให้ผลลัพธ์ตรงกับมาตรฐานของคุณ วิธีการที่กําหนดเองช่วยให้คุณทําสิ่งต่อไปนี้ได้
- ระบุเฟรมเวิร์กการทดสอบที่ต้องการ (ตัวอย่างเช่น xUnit แทน NUnit)
- กําหนดแบบแผนการตั้งชื่อสําหรับคลาสและวิธีการทดสอบ
- ตั้งค่าการกําหนดลักษณะโครงสร้างโค้ด เช่น รูปแบบ จัดเรียงAct-Assert
- ขอรูปแบบการทดสอบเฉพาะ เช่น การทดสอบพารามิเตอร์สําหรับค่าขอบเขต
จัดเก็บคําแนะนําแบบกําหนดเองใน *.instructions.md ไฟล์ในพื้นที่ทํางานของคุณ ใช้ applyTo ช่องข้อมูลเมตาเพื่อใช้วิธีการกับไฟล์ทดสอบเท่านั้น ตัวอย่างเช่น applyTo: tests/** ค่ากําหนดขอบเขตคําสั่งไปยังไฟล์ในไดเรก tests/ ทอรี การแชร์ไฟล์ในการควบคุมแหล่งที่มาทําให้นักพัฒนาทุกคนในทีมมีบริบทการทดสอบเดียวกัน
Important
กรณีทดสอบที่สร้างขึ้นอาจไม่ครอบคลุมทุกสถานการณ์ การตรวจสอบด้วยตนเองและการตรวจสอบโค้ดยังคงจําเป็นเพื่อให้มั่นใจในคุณภาพของการทดสอบ