角度生成动态分量

时间:2019-01-22 07:53:13

标签: angular unit-testing

我正在为我的有角项目编写单元测试用例。在一个组件中,另一个组件用作子组件。我创建了模拟子组件。为了避免冗余代码,我创建了一个辅助函数,该函数将生成一个组件并返回,以便可以在测试台上声明模拟组件。但是我不确定如何在动态组件上声明输入和输出。

这是我用于动态组件生成的代码。

export function getMockComponent(selector: string) {
    @Component({ selector, template: '' })
    class MockComponent { }
    return MockComponent;
}
  

我期待这样的事情:

export function getMockComponent(selector: string, { inputs = [], outputs = [] } = {}) {
    @Component({ selector, template: '' })
    class MockComponent { 
        for (let i = 0; i < inputs.length; i++) {
            @Input() inputs[i];
        }
    }
    return MockComponent;
}

1 个答案:

答案 0 :(得分:-1)

在函数中,您可以通过直接将其应用于类来应用类装饰器

Component({ selector, template: '' })(
    class MockComponent { 
        for (let i = 0; i < inputs.length; i++) {
            @Input() inputs[i];
        }
    })

但它可能不适用于AOT编译。