Javascript &引用;“进口类型”;导致单元测试失败
我有两个组件,看起来像这样: 父组件Javascript &引用;“进口类型”;导致单元测试失败,javascript,angular,typescript,unit-testing,storybook,Javascript,Angular,Typescript,Unit Testing,Storybook,我有两个组件,看起来像这样: 父组件 @组件({ 模板:“”, 供应商:[ {provide:PARENT_组件,useExisting:forwardRef(()=>ParentComponent)} ] }) 导出类ParentComponent{} 子组件 @组件({ 模板:“” }) 导出类MyComponent{ 建造师( @注入(父组件)专用只读父组件:父组件 ){} } 注入令牌: export const PARENT_COMPONENT=new InjectionToken
@组件({
模板:“”,
供应商:[
{provide:PARENT_组件,useExisting:forwardRef(()=>ParentComponent)}
]
})
导出类ParentComponent{}
子组件
@组件({
模板:“”
})
导出类MyComponent{
建造师(
@注入(父组件)专用只读父组件:父组件
){}
}
注入令牌:
export const PARENT_COMPONENT=new InjectionToken('ParentComponentToken');
在子组件中,当我执行如下导入时:
从“../parent.component”导入类型{ParentComponent};
我的单元测试全部中断并抛出以下错误:
ReferenceError:未定义ParentComponent
但是,我的故事书工作正常,组件工作正常
如果通过删除类型来更改导入,则如下所示:
从“../parent.component”导入{ParentComponent};
故事书不起作用,但单元测试确实起作用。为什么这会给我带来麻烦?我怎样才能修好它
如果我将构造函数更改为使用any
而不是ParentComponent
,那么单元测试和故事书都可以工作。但是,我并不真的想这样做,因为这样代码就不是强类型的。奇怪为什么要将父组件提供给它自己?这是故事书大会吗?你什么意思?我不认为我是在提供它自己…也许我误读了。。。在component decorator中,您有一个具有父组件注入令牌的providers数组,该令牌为您不希望在此处仅导入类型的同一组件提供forward ref。您需要一个实现。所以…呃..不要使用导入类型
。这回答了你的问题吗?也许我做错了(它确实有效)?我试图在子对象中提供对父对象的引用,以便子对象可以访问其父对象。