0Pricing
TypeScript Academy · درس

كتابة اختبارات وحدات آمنة من ناحية الأنواع

حدّدوا أنواع بيانات الاختبار والتأكيدات باستخدام أنواع TypeScript

كتابة اختبارات وحدات آمنة من ناحية الأنواع درس مجاني في TypeScript Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 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`؟

مراجعة

كتابة اختبارات وحدات آمنة من ناحية الأنواع: أتقنت المفاهيم والأنماط الأساسية.

الأسئلة الشائعة

هل درس «كتابة اختبارات وحدات آمنة من ناحية الأنواع» مجاني؟

نعم — نص درس «كتابة اختبارات وحدات آمنة من ناحية الأنواع» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة TypeScript Academy، انتقل إلى CoddyKit PRO. تتضمن دورة TypeScript Academy 4 دروس في المجموع.

ماذا ستتعلم في «كتابة اختبارات وحدات آمنة من ناحية الأنواع»؟

حدّدوا أنواع بيانات الاختبار والتأكيدات باستخدام أنواع TypeScript تتمرن على TypeScript Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ TypeScript Academy؟

لا تُشترط خبرة سابقة. TypeScript Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.

كم من الوقت يستغرق درس «كتابة اختبارات وحدات آمنة من ناحية الأنواع»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس TypeScript Academy هذا؟

نعم. كل درس في TypeScript Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. إعداد Jest لـ TypeScript باستخدام ts-jest
  2. كتابة اختبارات وحدات آمنة من ناحية الأنواع
  3. محاكاة الوحدات والدوال في TypeScript
  4. اختبار الأنواع باستخدام expectTypeOf وtsd
← العودة إلى TypeScript Academy