Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 角度生成动态组件_Angular_Unit Testing - Fatal编程技术网

Angular 角度生成动态组件

Angular 角度生成动态组件,angular,unit-testing,Angular,Unit Testing,我正在为我的angular项目编写单元测试用例。在其中一个组件中,另一个组件用作子组件。我创建了模拟子组件。为了避免冗余代码,我创建了一个helper函数,该函数将生成一个组件并返回,这样我就可以在测试床中声明模拟组件。但我不确定如何在动态组件上声明输入和输出 下面是我的动态组件生成代码 export function getMockComponent(selector: string) { @Component({ selector, template: '' }) class

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

下面是我的动态组件生成代码

export function getMockComponent(selector: string) {
    @Component({ selector, template: '' })
    class MockComponent { }
    return MockComponent;
}
我期待着这样的事情:

导出函数getMockComponent(选择器:字符串,{inputs=[],outputs=[]}={}){ @组件({选择器,模板:'}) 类组件{ for(设i=0;i在函数中,可以通过将类装饰器直接应用于类来应用类装饰器

组件({选择器,模板:''})(
类组件{
for(设i=0;i

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

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

组件({选择器,模板:''})(
类组件{
for(设i=0;i
但它可能不适用于AOT编译

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;
}