برنامه نویسی رو از سال 95 با جاوا و اندروید شروع کردم , به مدت 2 سالم با C# و .Net core کار میکردم ؛بعدش دیگه وارد حوزه وب شدمو چند ساله بطور جدی که با فریموورک انگولار کار میکنم در کنارش توی حوزه DevOps و توسعه اپلیکیشن با فلاتر هم فعالیت دارم و اینجام تا تجربیاتمو در اختیارتون بزارم.☺️
در دوره فارسی تست نویسی انگولار قصد دارم که به صورت کاملا پروژه محور شما را با تست نویسی و انواع تست ها در دنیای برنامه نویسی و فریموورک انگولار آشنا کنم.
تا با یادگیری تست نویسی بتوانید دانش برنامه نویسی خود را ارتقا داده و نرم افزار هایی ایمن تر داشته باشید. تمام دوره ها دارای پشتیبانی و آبدیت می باشند.تهیه شده توسط جامعه فارسی انگولار
تست نویسی یکی از مهمترین بخشهای توسعه نرمافزارهای پایدار و قابل اعتماد است.
در انگولار، ما میتوانیم از ابزارهایی مثل Jasmine و Karma برای نوشتن و اجرای تستها استفاده کنیم.
این ابزارها به ما کمک میکنند تا اطمینان حاصل کنیم که کامپوننتها و سرویسهای ما به درستی کار میکنند و از وقوع مشکلات در کدهایمان جلوگیری میشود.
در انگولار، سه نوع تست اصلی داریم:
در پروژههای انگولار، به صورت پیشفرض ابزارهای Jasmine و Karma از قبل تنظیم شدهاند.
اما برای اطمینان، شما میتوانید با اجرای دستورات زیر از نصب آنها مطمئن شوید:
npm install --save-dev jasmine-core karma karma-chrome-launcher karma-jasmine karma-jasmine-html-reporter
برای اجرای تستها میتوانید از دستور زیر استفاده کنید:
ng test
این دستور Karma را اجرا کرده و مرورگری را باز میکند که نتایج تستها به صورت زنده در آن نمایش داده میشوند.
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 این است که میتوانیم تستها را بهصورت خودکار و در حین توسعه اجرا کنیم تا مطمئن شویم که تغییرات ما مشکلی در کد ایجاد نکردهاند.
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);
});
});
در برخی موارد نیاز داریم که تستها برای انجام عملیات ناهمگام (مثل دریافت داده از 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ها و ابزارهای ناهمگام به ما کمک میکند تا تستهای پیچیدهتری ایجاد کنیم که بازتابدهنده رفتار واقعی اپلیکیشن باشند.
انگولار فریموورک مناسبی برای یادگیری فرانت اند می باشد , با وجود پیچیدگی هایی که دارد اما مسیر راه روشن و مشخصی دارد , منابع انگلیسی برای این فریموورک زیاد می باشد اما متاسفانه منبع فارسی مناسبی وجود ندارد. اما جای نگرانی ندارد من یک دوره فارسی تست نویسی انگولار برای شما تدارک دیده ام که از طریق لینک زیر میتوانید ثبت نام کنید.
ثبت نام دوره فارسی تست نویسی انگولار