1.500.000 تومان
  • زبان: فارسی
  • طول دوره: 10 ساعت
  • پشتیبانی: دارد
  • بروزرسانی: دائم
  • وضعیت دوره: درحال ضبط
ثبت نام
  • آشنایی با جاواسکریپت و تایپ اسکریپت
  • آ شنایی کامل با فریموورک انگولار
  • آشنایی نسبی با انواع تست ها
  • تجربه کار با Command line
سجاد منشی

برنامه نویسی رو از سال 95 با جاوا و اندروید شروع کردم , به مدت 2 سالم با C# و .Net core کار میکردم ؛بعدش دیگه وارد حوزه وب شدمو چند ساله بطور جدی که با فریموورک انگولار کار میکنم در کنارش توی حوزه DevOps و توسعه اپلیکیشن با فلاتر هم فعالیت دارم و اینجام تا تجربیاتمو در اختیارتون بزارم.☺️

دوره فارسی تست نویسی انگولار

در دوره فارسی تست نویسی انگولار قصد دارم که به صورت کاملا پروژه محور شما را با تست نویسی و انواع تست ها در دنیای برنامه نویسی و فریموورک انگولار آشنا کنم.

تا با یادگیری تست نویسی بتوانید دانش برنامه نویسی خود را ارتقا داده و نرم افزار هایی ایمن تر داشته باشید. تمام دوره ها دارای پشتیبانی و آبدیت می باشند.

تهیه شده توسط جامعه فارسی انگولار

تست نویسی انگولار – داشتن نرم افزارهای قابل اعتماد تر


  1. معرفی
  2. نصب و راه اندازی
  3. آشنایی با jasmine
  4. پیاده سازی اولین unit test
  5. آشنایی با spy
  6. before Each
  7. best practice


تست ‌نویسی در انگولار

تست ‌نویسی یکی از مهم‌ترین بخش‌های توسعه نرم‌افزارهای پایدار و قابل اعتماد است.
در انگولار، ما می‌توانیم از ابزارهایی مثل Jasmine و Karma برای نوشتن و اجرای تست‌ها استفاده کنیم.
این ابزارها به ما کمک می‌کنند تا اطمینان حاصل کنیم که کامپوننت‌ها و سرویس‌های ما به درستی کار می‌کنند و از وقوع مشکلات در کدهایمان جلوگیری می‌شود.

انواع تست‌ها در انگولار

در انگولار، سه نوع تست اصلی داریم:

  • تست واحد (Unit Test): تست‌های کوچک و سریع که برای بررسی عملکرد یک واحد خاص از کد، مثل یک تابع یا متد، نوشته می‌شوند.
  • تست یکپارچگی (Integration Test): تست‌هایی که بررسی می‌کنند که آیا بخش‌های مختلف یک اپلیکیشن با هم به درستی کار می‌کنند یا نه.
  • تست پذیرش (End-to-End Test): تست‌هایی که اپلیکیشن را از نگاه کاربر نهایی بررسی می‌کنند و تعاملات و گردش کارهای کلی را تست می‌کنند.

مراحل اولیه: نصب و تنظیمات

در پروژه‌های انگولار، به صورت پیش‌فرض ابزارهای Jasmine و Karma از قبل تنظیم شده‌اند.
اما برای اطمینان، شما می‌توانید با اجرای دستورات زیر از نصب آنها مطمئن شوید:

npm install --save-dev jasmine-core karma karma-chrome-launcher karma-jasmine karma-jasmine-html-reporter

برای اجرای تست‌ها می‌توانید از دستور زیر استفاده کنید:

ng test

این دستور Karma را اجرا کرده و مرورگری را باز می‌کند که نتایج تست‌ها به صورت زنده در آن نمایش داده می‌شوند.

Jasmine: فریمورک نوشتن تست

Jasmine یک فریمورک تست‌نویسی برای جاوااسکریپت است که از مفاهیم BDD (Behavior Driven Development) استفاده می‌کند.
تست‌های نوشته‌شده در Jasmine با ساختار "توضیح" و "انتظار" نوشته می‌شوند. به این معنی که ابتدا رفتار مورد انتظار توصیف می‌شود و سپس انتظار می‌رود که نتیجه مشخصی از اجرای کد به دست آید.

مثال ساده از تست یک کامپوننت

یک مثال ساده از نوشتن تست برای یک کامپوننت در انگولار به صورت زیر است:

describe('AppComponent', () => {
    let component: AppComponent;

    beforeEach(() => {
        component = new AppComponent();
    });

    it('should return default title', () => {
        expect(component.title).toBe('my-angular-app');
    });

    it('should change title', () => {
        component.changeTitle('new');
        expect(component.title).toBe('new');
    });
});

توضیح کد

در این مثال:

  • با استفاده از describe گروهی از تست‌ها برای کامپوننت تعریف کرده‌ایم.
  • قبل از اجرای هر تست، یک نمونه جدید از AppComponent ایجاد می‌کنیم.
  • با استفاده از it، هر تست مستقل را تعریف می‌کنیم. هر تست انتظار دارد که مقدار خاصی از متدها یا متغیرهای کامپوننت برگردد.

Karma: اجرای تست‌ها

Karma ابزاری است که به ما کمک می‌کند تست‌هایمان را در مرورگرهای مختلف اجرا کنیم. Karma از طریق مرورگرها، تست‌ها را اجرا کرده و نتایج را نمایش می‌دهد. یکی از مزایای استفاده از Karma این است که می‌توانیم تست‌ها را به‌صورت خودکار و در حین توسعه اجرا کنیم تا مطمئن شویم که تغییرات ما مشکلی در کد ایجاد نکرده‌اند.

مفاهیم پیشرفته در تست نویسی

استفاده از Mock در تست‌ها

در بسیاری از مواقع، نیاز داریم که سرویس‌ها یا وابستگی‌ها را در تست‌های خود به‌جای استفاده از نسخه واقعی، شبیه‌سازی کنیم. برای این کار از Mock ها استفاده می‌کنیم. به عنوان مثال، می‌توانیم سرویس‌ها را Mock کنیم تا رفتارهای دلخواه را شبیه‌سازی کنیم:


                            class MockDataService {
    getData() {
        return of(['data1', 'data22']);
    }
}

describe('MyComponent', () => {
    let component: MyComponent;
    let dataService: MockDataService;

    beforeEach(() => {
        dataService = new MockDataService();
        component = new MyComponent(dataService);
    });

    it('should retrieve services data', () => {
        component.loadData();
        expect(component.data.length).toBe(2);
    });
});

تست‌های ناهمگام (Asynchronous Testing)

در برخی موارد نیاز داریم که تست‌ها برای انجام عملیات ناهمگام (مثل دریافت داده از API) صبر کنند. برای این منظور، در Jasmine از async و fakeAsync استفاده می‌کنیم. برای مثال:

it('should load data after delay', fakeAsync(() => {
    let data = null;
    setTimeout(() => {
        data = 'data loaded';
    }, 3000);

    tick(3000);
    expect(data).toBe('data loaded');
}));

جمع‌بندی

تست‌نویسی در انگولار یک ابزار قدرتمند برای اطمینان از کیفیت و عملکرد صحیح برنامه است.
با استفاده از ابزارهایی مثل Jasmine و Karma، می‌توانیم تست‌های واحد، تست‌های یکپارچگی و حتی تست‌های ناهمگام بنویسیم. همچنین استفاده از Mock‌ها و ابزارهای ناهمگام به ما کمک می‌کند تا تست‌های پیچیده‌تری ایجاد کنیم که بازتاب‌دهنده رفتار واقعی اپلیکیشن باشند.

انگولار فریموورک مناسبی برای یادگیری فرانت اند می باشد , با وجود پیچیدگی هایی که دارد اما مسیر راه روشن و مشخصی دارد , منابع انگلیسی برای این فریموورک زیاد می باشد اما متاسفانه منبع فارسی مناسبی وجود ندارد. اما جای نگرانی ندارد من یک دوره فارسی تست نویسی انگولار برای شما تدارک دیده ام که از طریق لینک زیر میتوانید ثبت نام کنید.

ثبت نام دوره فارسی تست نویسی انگولار