ใช้ ChatGPT ช่วยเขียน Unit Test และ Mock Data

เมื่อพัฒนาโปรแกรม ไม่ว่าจะเป็น Web, API หรือ Application
สิ่งสำคัญคือ การทดสอบโค้ดให้แน่ใจว่าใช้งานได้จริง

แต่หลายคนยัง…

  • ไม่ถนัดเขียน Unit Test
  • ไม่รู้จะเริ่มทดสอบจากตรงไหน
  • ใช้เวลานานกับการป้อนข้อมูลจำลอง

ChatGPT สามารถช่วยคุณเขียน Unit Test พร้อม Mock Data ได้หลากหลายภาษาและเครื่องมือ เช่น Jest, PHPUnit, Pytest, Mocha, Laravel, FastAPI และอื่น ๆ


1. เขียน Unit Test จากฟังก์ชันที่มี

Prompt ที่แนะนำ:

“ช่วยเขียน Unit Test สำหรับฟังก์ชัน JavaScript นี้ด้วย Jest”
(แนบฟังก์ชัน)

ตัวอย่างฟังก์ชัน:

JavaScript
function add(a, b) {
  return a + b;
}

ChatGPT จะตอบ:

JavaScript
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 ที่ระบุ เช่น:

Python
# test_calculator.py
from calculator import add

def test_add():
    assert add(2, 3) == 5

หรือ

PHP
public function testAdd()
{
    $this->assertEquals(5, $this->calculator->add(2, 3));
}

3. เขียน Test สำหรับ API / Controller

Prompt ที่แนะนำ:

“ช่วยเขียน Unit Test สำหรับ API /login ใน Laravel โดยใช้ Laravel TestCase”

ChatGPT จะให้โค้ด:

PHP
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 ได้ เช่น:

JSON
[
  { "name": "John Doe", "email": "[email protected]", "password": "hashed123", "birthdate": "1990-05-10" },
  ...
]

หรือในรูปแบบ SQL:

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 จะตอบ:

JavaScript
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 เพิ่มเติมตามบริบทจริงของระบบเสมอ

แชร์เรื่องนี้