如何正确使用Jasmine测试Angular/TypeScript中的私有方法
大家好!我是Angular和TypeScript的新手,在编写私有方法的单元测试时遇到了问题。我有一个服务,它执行复杂的计算,为了提高可读性,我将部分逻辑提取到了私有方法中。以下是我的代码示例:
```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);
}
}
```
当我尝试使用Jasmine为`filterInvalidItems`编写测试时,我收到错误,提示该方法是私有的,无法从测试中访问:
```typescript
describe('CalculationService', () => {
let service: CalculationService;
beforeEach(() => {
service = new CalculationService(