问题描述
问题很简单。我从未真正喜欢过原始测试在Angular中的工作原理(TestBed
部分),所以我一直以经典的方式完成它:使用 ts-mockito 进行模拟。无需TestBed
,无需配置,零混乱。我什至用Jest代替了Karma / Jasmine。
但是在嘲笑ActivatedRouter
时,我总是遇到麻烦,因为我想很多人都在那里。我见过的一种解决方案是让一个对象具有ActivatedRouter
拥有的大量属性,并替换您要模拟的属性的值。该解决方案很烦人,而且非常不可持续。
另一种解决方案被迫使用我不喜欢的TestBed
并执行以下操作:
providers: [
{
provide: ActivatedRoute,useValue: {
snapshot: {
paramMap: {
get: () => 'foo'
},queryParamMap: {
get: () => 'bar'
}
}
}
}
]
这个实际上非常好,但是正如我所说,它迫使您使用TestBed
。因此,如何在不使用ActivatedRoute
的情况下嘲笑TestBed
的行为?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)