0Pricing
TypeScript Academy · บทเรียน

การเขียนการทดสอบหน่วยที่ปลอดภัยด้านชนิด

ใส่คำอธิบายชนิดให้ข้อมูลทดสอบและการยืนยันด้วยชนิด TypeScript

การเขียนการทดสอบหน่วยที่ปลอดภัยด้านชนิด เป็นบทเรียน TypeScript Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน TypeScript Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส TypeScript Academy มีบทเรียนทั้งหมด 4 บทเรียน

ยินดีต้อนรับ

การทดสอบที่ปลอดภัยด้านชนิดข้อมูลช่วยตรวจพบข้อผิดพลาดในโค้ดการทดสอบเอง และทำให้มั่นใจว่าข้อมูลการทดสอบตรงกับชนิดข้อมูลในโค้ดจริง

การระบุชนิดข้อมูลของข้อมูลการทดสอบ

ใช้ชนิดข้อมูลของคุณกับข้อมูลการทดสอบ — TypeScript จะตรวจพบข้อมูลการทดสอบที่ล้าสมัยเมื่อชนิดข้อมูลเปลี่ยนแปลง
import type { User } from '../src/types';
const mockUser: User = { id: 1, name: 'Alice', email: 'a@b.com' };
// TypeScript errors if User interface changes

การยืนยันที่ระบุชนิดข้อมูล

expect() ใช้งานกับค่าที่ระบุชนิดข้อมูลได้ TypeScript จะจำกัดชนิดข้อมูลให้แคบลงผ่านการยืนยัน
const result = add(1, 2);
expect(result).toBe(3);
const str: string = result.toString(); // result is typed as number

การระบุชนิดข้อมูลของค่าที่ส่งคืน

ระบุชนิดข้อมูลของค่าที่คาดว่าจะส่งคืนเพื่อให้ตรวจพบการเปลี่ยนแปลงของชนิดข้อมูล
const user: User | null = await findUser(1);
expect(user).not.toBeNull();
expect(user!.name).toBe('Alice');

ตัวช่วยการทดสอบที่ระบุชนิดข้อมูล

สร้างฟังก์ชันโรงงานการทดสอบที่ระบุชนิดข้อมูลสำหรับสร้างข้อมูลการทดสอบ
function createUser(overrides?: Partial<User>): User {
  return { id: 1, name: 'Test User', email: 'test@example.com', ...overrides };
}

การระบุชนิดข้อมูลของ beforeEach

ระบุชนิดข้อมูลของตัวแปรที่เริ่มต้นค่าใน beforeEach ให้ถูกต้อง
let user: User;
beforeEach(() => { user = createUser(); });
test('has a name', () => { expect(user.name).toBeDefined(); });

การทดสอบแบบอะซิงโครนัสที่ระบุชนิดข้อมูล

ระบุชนิดข้อมูลของฟังก์ชันการทดสอบแบบอะซิงโครนัสและค่าที่ส่งคืน
test('fetches user', async () => {
  const user: User = await getUser(1);
  expect(user.id).toBe(1);
});

การทดสอบข้อผิดพลาดด้วยชนิดข้อมูล

ทดสอบว่าฟังก์ชันโยนข้อผิดพลาดที่มีชนิดข้อมูลถูกต้อง
await expect(getUser(-1)).rejects.toThrow(NotFoundError);

ยูทิลิตีการทดสอบแบบเจเนอริก

สร้างยูทิลิตีการทดสอบแบบเจเนอริกที่ระบุชนิดข้อมูลสำหรับการยืนยันทั่วไป
function expectType<T>(value: T): T { return value; }
expectType<User>(response.data); // compile error if wrong type

การทดสอบภาพบันทึกด้วยชนิดข้อมูล

ชนิดข้อมูลของ TypeScript ช่วยให้เขียนการทดสอบภาพบันทึกได้อย่างถูกต้อง
const user: User = { id: 1, name: 'Alice' };
expect(user).toMatchSnapshot();

ความครอบคลุมการทดสอบและชนิดข้อมูล

TypeScript ช่วยให้มั่นใจว่ายูทิลิตีการทดสอบคงอินเทอร์เฟซเดียวกับโค้ดที่ใช้จริง

ตรวจสอบอย่างรวดเร็ว

ประโยชน์ของการระบุชนิดข้อมูลให้ฟังก์ชันโรงงานการทดสอบด้วย `Partial` คืออะไร

สรุป

การเขียนการทดสอบหน่วยที่ปลอดภัยด้านชนิดข้อมูล: คุณได้เข้าใจแนวคิดและรูปแบบสำคัญแล้ว

คำถามที่พบบ่อย

บทเรียน “การเขียนการทดสอบหน่วยที่ปลอดภัยด้านชนิด” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การเขียนการทดสอบหน่วยที่ปลอดภัยด้านชนิด” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส TypeScript Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส TypeScript Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การเขียนการทดสอบหน่วยที่ปลอดภัยด้านชนิด”

ใส่คำอธิบายชนิดให้ข้อมูลทดสอบและการยืนยันด้วยชนิด TypeScript คุณปฏิบัติ TypeScript Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน TypeScript Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน TypeScript Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “การเขียนการทดสอบหน่วยที่ปลอดภัยด้านชนิด” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน TypeScript Academy นี้ได้ไหม

ได้ บทเรียน TypeScript Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การตั้งค่า Jest สำหรับ TypeScript ด้วย ts-jest
  2. การเขียนการทดสอบหน่วยที่ปลอดภัยด้านชนิด
  3. การจำลองโมดูลและฟังก์ชันใน TypeScript
  4. การทดสอบชนิดด้วย expectTypeOf และ tsd
← กลับไปที่ TypeScript Academy