我希望我的Angular 组件应该从CommonModule中名为TitleCaseTube.
在我的测试文件下面:
test.component.ts个
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
import { CommonModule } from '@angular/common';
@Component({
template: `<span>{{ text | titlecase }}</span>`,
standalone: true,
changeDetection: ChangeDetectionStrategy.OnPush,
imports: [CommonModule]
})
export class TestComponent {
@Input() text: string;
}
test.component.spec.ts个
import { ChangeDetectionStrategy } from '@angular/core';
import { CommonModule, TitleCasePipe } from '@angular/common';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { TestComponent } from './test.component';
describe('TestComponent', () => {
let component: TestComponent;
let fixture: ComponentFixture<TestComponent>;
let titleCasePipeSpy: any = jasmine.createSpyObj('TitleCasePipe', ['transform']);
beforeEach(() => {
TestBed.configureTestingModule({
imports: [TestComponent, CommonModule],
providers: [{ provide: TitleCasePipe, useValue: titleCasePipeSpy }],
}).overrideComponent(TestComponent, {
set: { changeDetection: ChangeDetectionStrategy.Default }
}).compileComponents();
fixture = TestBed.createComponent(TestComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should render text using titlecase', () => {
component.test= 'test';
fixture.detectChanges();
expect(titleCasePipeSpy.transform).toHaveBeenCalledTimes(1);
});
});
我的测试结果:"预期调用了一次spy TitleCasePipe.Transform.它被调用了0次".我在这里错过了什么?