Я новичок в Angular, и я начал писать свой первый тест.Может ли кто-нибудь помочь мне понять, как работает внедрение зависимостей?
У меня есть класс с именем Level.ts, который выглядит примерно так:
export class Level {
Title: string,
isTitle: boolean
}
и мой фактический компонент с именем Previewer.component.ts, который выглядит как
import { Input,Component, OnInit } from '@angular/core';
import { Level} from '../Level';
@Component({
selector: 'app-previewer',
templateUrl: './previewer.component.html',
styleUrls: ['./previewer.component.css']
})
export class Previewer implements OnInit {
@Input() level: Level;
confirmTitle(){
this.level.Title = "Level 1";
this.level.isTitle = true;
}
}
Я должен добавить, что в настоящее время я не использую службу и хотел бы проверить файл previewer.component.ts.Однако, когда я запускаю тест, он выдает ошибку, говорящую, что «TypeError: Не удается прочитать свойство» isTitle «undefined».Я также использовал NO_ERRORS_SCHEMA, но все же я получаю эту ошибку.Пожалуйста, помогите
Я устанавливаю свойство уровня в моем тестовом файле
describe('PreviewerComponent', () => {
let component: PreviewerComponent;
let fixture: ComponentFixture<PreviewerComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ PreviewerComponent ],
schemas: [CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(VideoImageTextPreviewComponent);
component = fixture.componentInstance;
fixture.detectChanges();
**component.step.HasVideo = false;**
});
it('should create', () => {
expect(component).toBeTruthy();
});
Мой HTML-файл выглядит так
<div class="levelPreviewWindow">
<div class="mediaBackground" *ngIf="level.isTitle">
<video [src]="level.Title" preload="auto" *ngIf="level.isTitle" autoplay controls loop>
<source type="video/mp4">
</video>
</div>
<div *ngIf="!level.isTitle">
<input type="file" class="mediaUploader" (change)="PreviewVideo($event)">
</div>
</div>