【问题标题】:How to mock router in angular jasmine spec如何在角茉莉花规格中模拟路由器
【发布时间】:2021-04-19 16:26:27
【问题描述】:

我是使用 jasmine 编写测试规范的新手。我在 ngOnInit() 中有一个条件,例如 router.url.includes(some string)。检查组件是否真实的默认规范测试用例失败,说 TypeError:找不到未定义的包含。有什么方法可以监视或模拟包含?

【问题讨论】:

标签: angular unit-testing jasmine karma-jasmine specs


【解决方案1】:

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

只需导入下面的角度路由器。

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

并将其添加到NgModuleimports 数组中


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

然后你可以如下注入Router并使用它进行测试

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-04
    • 2016-11-01
    • 1970-01-01
    • 2021-12-14
    • 1970-01-01
    • 2015-05-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多