微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在角茉莉花规范中模拟路由器

如何解决如何在角茉莉花规范中模拟路由器

我是使用 jasmine 编写测试规范的新手。我在 ngOnInit() 中有一个条件,例如 router.url.includes(some string)。检查组件是否为真的认规范测试用例失败,说 TypeError: Cannot find includes of undefined。有没有办法监视或模拟包含?

解决方法

您可以使用 RouterTestingModule 来模拟角度路由器。

只需按如下方式导入角度路由器。

import { RouterTestingModule } from '@angular/router/testing';
import { ActivatedRoute,Router } from '@angular/router';

并将其添加到 importsNgModule 数组


TestBed.configureTestingModule({
    declarations: [
        someComponent
    ],imports: [
        RouterTestingModule.withRoutes([]),],providers: [someProvider],}).compileComponents

然后你可以像下面这样注入Router并用于测试

it('should Navigate',() => {
    const actiavtedRoute = TestBed.inject(ActivatedRoute);
    const router = TestBed.inject(Router);
})

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。