我正在为我的有角项目编写单元测试用例。在一个组件中,另一个组件用作子组件。我创建了模拟子组件。为了避免冗余代码,我创建了一个辅助函数,该函数将生成一个组件并返回,以便可以在测试台上声明模拟组件。但是我不确定如何在动态组件上声明输入和输出。
这是我用于动态组件生成的代码。
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;
}
答案 0 :(得分:-1)
在函数中,您可以通过直接将其应用于类来应用类装饰器
Component({ selector, template: '' })(
class MockComponent {
for (let i = 0; i < inputs.length; i++) {
@Input() inputs[i];
}
})
但它可能不适用于AOT编译。