Angular 6 тестирование макет зависимости от класса - PullRequest
0 голосов
/ 21 октября 2018

Я новичок в 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...