小编Aje*_*orf的帖子

如何对以 TemplateRef 作为输入的 Angular 组件进行单元测试?

我正在尝试为 Angular 组件编写单元测试,它可以隐藏/显示作为输入传递给组件本身的一些内容。预期的输入定义为 TemplateRef。

我的component.component.ts

@Component({
    selector: "my-component",
    templateUrl: "./my-component.component.html",
    styleUrls: ["./my-component.component.scss"],
    exportAs: "mycomponent"
})
export class MyComponent {
    private _expanded = false;

    @Input()
    set expanded(value: boolean) {
        this._expanded = value;
    }

    @Input()
    body: TemplateRef<any>;
    @Input()
    handler: TemplateRef<any>;

    constructor() {}

    toggleView() {
        this.expanded = !this._expanded;
    }
}

Run Code Online (Sandbox Code Playgroud)

我的component.component.html

<div class="wrap">
    <!-- Header -->
    <main #header>
        <header (click)="toggleAccordion()">
            <div class="handler">
                <ng-container [ngTemplateOutlet]="handler">
                </ng-container>
            </div>
            <i class="icon icon-expand" [ngClass]="{ 'icon-expand': _expanded, 'icon-collapse': !_expanded }"></i>
        </header>
    </main>
    <!-- Body -->
    <div class="body" *ngIf="_expanded"> …
Run Code Online (Sandbox Code Playgroud)

unit-testing typescript karma-jasmine angular2-template angular

7
推荐指数
1
解决办法
5709
查看次数