Avatar ·

كيفية اختبار الطرق الخاصة في Angular/TypeScript باستخدام Jasmine بشكل صحيح؟

مرحبًا بالجميع! أنا مبتدئ في Angular و TypeScript، وقد واجهت مشكلة في كتابة اختبارات الوحدة للطرق الخاصة. لدي service يقوم بحسابات معقدة، وقد قمت بنقل جزء من المنطق إلى طريقة خاصة لتحسين قابلية القراءة. إليك مثال على الكود الخاص بي: ```typescript import { Injectable } from '@angular/core'; @Injectable({ providedIn: 'root' }) export class CalculationService { public calculateTotal(items: number[]): number { const filtered = this.filterInvalidItems(items); return filtered.reduce((sum, item) => sum + item, 0); } private filterInvalidItems(items: number[]): number[] { return items.filter(item => item > 0 && item < 1000); } } ``` عندما أحاول كتابة اختبار لـ `filterInvalidItems` باستخدام Jasmine، أحصل على خطأ بأن الطريقة خاصة ولا يمكن الوصول إليها من الاختبار: ```typescript describe('CalculationService', () => { let service: CalculationService; beforeEach(() => { service = new CalculationService(); }); it('should fi