角度单元测试 - 如何模拟router.url

时间:2018-06-14 16:34:29

标签: unit-testing jasmine angular6

我有一个角度6应用程序,我正在尝试对我注入路由器的组件进行单元测试。在我的ngOnInit方法中,我引用this.router.url并使用它。

所以现在我正在尝试编写一个jasmine单元测试,我无法设置router.url属性,因为它"是一个常量的只读属性"。我目前正在嘲笑像这样的路由器。

mockRouter = jasmine.createSpyObj<Router>("router", ["navigate", "navigateByUrl"]);

我还需要设置什么来正确模拟测试中的url值?

1 个答案:

答案 0 :(得分:0)

茉莉花间谍活动应该是合理的解决方法

spyOnProperty(router, 'url', 'get').and.returnValue('/users');

如此处推荐 https://stackoverflow.com/a/43793575/11552394

并记录在Jasmine文档中 https://jasmine.github.io/api/3.4/global.html#spyOnProperty