是不可行的,因为window.location.href是浏览器对象,而在单元测试中无法直接访问浏览器对象。
在Angular 7单元测试中,我们可以使用Angular提供的测试工具和技术来模拟和测试路由导航的行为。以下是一些常用的方法:
- 使用RouterTestingModule:在测试中,可以使用RouterTestingModule来模拟路由器的行为。它提供了一组用于测试路由导航的工具和方法。
- 使用Router和Location:可以通过注入Router和Location服务来测试路由导航。通过使用Router和Location的方法,可以模拟导航到指定URL并验证导航是否成功。
- 使用RouterTestingModule.withRoutes:可以使用RouterTestingModule.withRoutes方法来定义测试用例中的路由配置。这样可以在测试中模拟不同的路由导航情况。
- 使用Router.navigate和Router.navigateByUrl:可以使用Router的navigate和navigateByUrl方法来模拟路由导航。这些方法接受一个URL参数,并将应用导航到指定的URL。
- 使用Router.events:可以使用Router的events属性来监听路由事件。通过监听路由事件,可以验证路由导航是否发生,并执行相应的断言。
总结起来,使用window.location.href进行Angular 7单元测试是不可行的,而是应该使用Angular提供的测试工具和技术来模拟和测试路由导航的行为。以上是一些常用的方法和技巧,具体的测试方案和代码实现可以根据具体的需求和场景进行调整和扩展。
腾讯云相关产品和产品介绍链接地址:
- 腾讯云云服务器(CVM):https://cloud.tencent.com/product/cvm
- 腾讯云云原生容器服务(TKE):https://cloud.tencent.com/product/tke
- 腾讯云云数据库 MySQL 版(CDB):https://cloud.tencent.com/product/cdb
- 腾讯云人工智能(AI):https://cloud.tencent.com/product/ai
- 腾讯云物联网(IoT):https://cloud.tencent.com/product/iotexplorer
- 腾讯云移动开发(移动推送、移动分析、移动测试等):https://cloud.tencent.com/product/mobile
- 腾讯云对象存储(COS):https://cloud.tencent.com/product/cos
- 腾讯云区块链服务(BCS):https://cloud.tencent.com/product/bcs
- 腾讯云元宇宙(Tencent Real-Time Render):https://cloud.tencent.com/product/trr