เมื่อพัฒนาโปรแกรม ไม่ว่าจะเป็น Web, API หรือ Application
สิ่งสำคัญคือ การทดสอบโค้ดให้แน่ใจว่าใช้งานได้จริง
แต่หลายคนยัง…
- ไม่ถนัดเขียน Unit Test
- ไม่รู้จะเริ่มทดสอบจากตรงไหน
- ใช้เวลานานกับการป้อนข้อมูลจำลอง
ChatGPT สามารถช่วยคุณเขียน Unit Test พร้อม Mock Data ได้หลากหลายภาษาและเครื่องมือ เช่น Jest, PHPUnit, Pytest, Mocha, Laravel, FastAPI และอื่น ๆ
1. เขียน Unit Test จากฟังก์ชันที่มี
Prompt ที่แนะนำ:
“ช่วยเขียน Unit Test สำหรับฟังก์ชัน JavaScript นี้ด้วย Jest”
(แนบฟังก์ชัน)
ตัวอย่างฟังก์ชัน:
function add(a, b) {
return a + b;
}ChatGPT จะตอบ:
test('adds 2 + 3 to equal 5', () => {
expect(add(2, 3)).toBe(5);
});✅ พร้อมคำอธิบายว่าแต่ละส่วนคืออะไร
2. เขียน Unit Test ในภาษาอื่น เช่น PHP / Python / Java
Prompt ที่แนะนำ:
“ช่วยเขียน Unit Test สำหรับคลาส PHP นี้โดยใช้ PHPUnit”
หรือ
“ช่วยเขียน Unit Test สำหรับฟังก์ชัน Python นี้ด้วย Pytest”
ChatGPT จะจัดให้ตาม framework ที่ระบุ เช่น:
# test_calculator.py
from calculator import add
def test_add():
assert add(2, 3) == 5หรือ
public function testAdd()
{
$this->assertEquals(5, $this->calculator->add(2, 3));
}3. เขียน Test สำหรับ API / Controller
Prompt ที่แนะนำ:
“ช่วยเขียน Unit Test สำหรับ API
/loginใน Laravel โดยใช้ Laravel TestCase”
ChatGPT จะให้โค้ด:
public function testLoginSuccess()
{
$response = $this->postJson('/api/login', [
'email' => '[email protected]',
'password' => 'password'
]);
$response->assertStatus(200);
$response->assertJsonStructure(['token']);
}✅ พร้อมเสริมเคส: login ผิด / user ไม่พบ / password ผิด
4. สร้าง Mock Data สำหรับทดสอบระบบ
Prompt ที่แนะนำ:
“ช่วยสร้าง Mock Data สำหรับตาราง users โดยมีชื่อ อีเมล รหัสผ่าน และวันเกิด 10 รายการ”
ChatGPT จะตอบในรูปแบบ JSON หรือ SQL ได้ เช่น:
[
{ "name": "John Doe", "email": "[email protected]", "password": "hashed123", "birthdate": "1990-05-10" },
...
]หรือในรูปแบบ SQL:
INSERT INTO users (name, email, password, birthdate)
VALUES ('John Doe', '[email protected]', 'hashed123', '1990-05-10');5. เขียน Mock Function หรือ Mock Service
Prompt ที่แนะนำ:
“ช่วยเขียน Mock Function ของบริการส่งอีเมล (sendEmail) สำหรับใช้ใน Unit Test”
ChatGPT จะตอบ:
const sendEmail = jest.fn(() => Promise.resolve('email sent'));✅ ใช้สำหรับทดสอบโดยไม่เรียก API จริง
6. วิเคราะห์ Coverage และแนะนำ Test Case เพิ่มเติม
Prompt ที่แนะนำ:
“ช่วยดูฟังก์ชันนี้ว่าควรเขียน Test Case เพิ่มตรงจุดไหน เพื่อให้ครอบคลุม logic ทั้งหมด”
ChatGPT จะ:
- วิเคราะห์เงื่อนไขใน
if / else / loop - เสนอชุดข้อมูลกรณีปกติ + กรณีพิเศษ
- บอกว่าขาดเงื่อนไขไหนที่ควรมี test เพิ่ม
จุดเด่นของการใช้ ChatGPT เขียน Unit Test และ Mock Data
- ช่วยเร่งกระบวนการทดสอบ
- รองรับหลายภาษาและเฟรมเวิร์ก
- มีตัวอย่างและคำอธิบายเข้าใจง่าย
- ขอให้เขียนใหม่ / เพิ่มเคส / ลดระดับความยากได้เสมอ
หมายเหตุ
แม้ ChatGPT จะช่วยสร้างโค้ด Unit Test ได้รวดเร็ว
ควรนำไป “ทดสอบจริงในระบบ” เพื่อให้แน่ใจว่าใช้งานได้กับกรณีเฉพาะของคุณ
และควรเขียน Test เพิ่มเติมตามบริบทจริงของระบบเสมอ