Создать макет для типа в угловых - PullRequest
0 голосов
/ 16 января 2019

Я пытался создать макет для типа в файле .spec и не смог этого сделать, может кто-нибудь помочь мне, пожалуйста, на этом ..

код компонента выглядит следующим образом

import {Component, Input, OnInit} from '@angular/core';
import {Applications} from '../model/applications';

@Component({
    selector: 'application',
    templateUrl: './application.html',
    styleUrls: ['./application.css']
})
export class Application implements OnInit {

    @Input() rowData: any;

    columnDefinition: any[];
    applications: Applications;

    constructor() {
    }

    ngOnInit() {
        this.columnDefinition = [
            {field: 'appName', header: 'Application Name', class: 'application-name-column'},
            {field: 'appVersion', header: 'Version', class: 'fenix-version-column'}
        ];
    }
}

и мои спецификации следующие.

import {async, ComponentFixture, TestBed} from '@angular/core/testing';

import {Application from './application.component';
import {TableModule} from 'primeng/table';
describe('ApplicationComponent', () => {
    let component: ApplicationComponent;
    let fixture: ComponentFixture<ApplicationComponent>;

    beforeEach(async(() => {
        TestBed.configureTestingModule({
            declarations: [ApplicationComponent],
            imports: [TableModule]
        })
            .compileComponents();
    }));

    beforeEach(() => {
        fixture = TestBed.createComponent(ApplicationComponent);
        component = fixture.componentInstance;
        fixture.detectChanges();
    });

    it('should create', () => {
        expect(component).toBeTruthy();
    });
});

Я получаю следующее исключение.

Cannot read property 'applications' of undefined
    at Object.eval [as updateDirectives] (ng:///DynamicTestModule/ApplicationDetailComponent.ngfactory.js:74:33)
    at Object.debugUpdateDirectives [as updateDirectives] (http://localhost:9876/_karma_webpack_/webpack:/node_modules/@angular/core/fesm5/core.js:11054:1)
    at checkAndUpdateView (http://localhost:9876/_karma_webpack_/webpack:/node_modules/@angular/core/fesm5/core.js:10451:1)
    at callViewAction (http://localhost:9876/_karma_webpack_/webpack:/node_modules/@angular/core/fesm5/core.js:10692:1)
    at execComponentViewsAction (http://localhost:9876/_karma_webpack_/webpack:/node_modules/@angular/core/fesm5/core.js:10634:1)
    at checkAndUpdateView (http://localhost:9876/_karma_webpack_/webpack:/node_modules/@angular/core/fesm5/core.js:10457:1)
    at callWithDebugContext (http://localhost:9876/_karma_webpack_/webpack:/node_modules/@angular/core/fesm5/core.js:11344:1)
    at Object.debugCheckAndUpdateView [as checkAndUpdateView] (http://localhost:9876/_karma_webpack_/webpack:/node_modules/@angular/core/fesm5/core.js:11022:1)
    at ViewRef_.push../node_modules/@angular/core/fesm5/core.js.ViewRef_.detectChanges (http://localhost:9876/_karma_webpack_/webpack:/node_modules/@angular/core/fesm5/core.js:8838:1)
    at ComponentFixture.push../node_modules/@angular/core/fesm5/testing.js.ComponentFixture._tick (http://localhost:9876/_karma_webpack_/webpack:/node_modules/@angular/core/fesm5/testing.js:227:1)

1 Ответ

0 голосов
/ 16 января 2019

Для свойства applications вашего компонента должно быть установлено какое-то значение. Это можно установить в OnInit, например columnDefinitions, или установить для экземпляра компонента:

component = fixture.componentInstance;
component.applications = [];
fixture.detectChanges();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...