use*_*395 3 unit-testing jasmine angular6
我有一个 Angular 6 应用程序,我正在尝试对注入路由器的组件进行单元测试。在我的 ngOnInit 方法中,我引用了 this.router.url 并使用它。
所以现在我正在尝试编写一个 jasmine 单元测试,但我无法设置 router.url 属性,因为它“是一个常量或只读属性”。我目前正在这样嘲笑路由器。
mockRouter = jasmine.createSpyObj<Router>("router", ["navigate", "navigateByUrl"]);
Run Code Online (Sandbox Code Playgroud)
我还需要设置什么才能在测试中正确模拟 url 值?
小智 9
茉莉花窥探财产应该是合理的解决方案
spyOnProperty(router, 'url', 'get').and.returnValue('/users');
Run Code Online (Sandbox Code Playgroud)
正如这里推荐的 /sf/answers/3065550281/
并记录在 Jasmine 文档中 https://jasmine.github.io/api/3.4/global.html#spyOnProperty