我正在玩 ui-router-ng2。并且在单元测试组件时遇到了一些问题,该组件具有 Transition 的依赖关系以获取查询字符串。
然后我浏览了这个模块的代码,看看用 Jasmine 在我的测试套件中注入这个实用程序的适当方法是什么。
到目前为止,我还没有找到任何由 ui-router-ng2 公开的负责创建转换的工厂类。有一个提供工厂方法的 transitionService 但我不确定这是否是我正在寻找的以及如何在我的测试模块设置中利用它。
问这个是因为我在运行我的测试套件时遇到了“No provider for Transition”的错误,这是伪代码:
import {APP_BASE_HREF} from "@angular/common";
import {TestBed, async, inject} from "@angular/core/testing";
import {AppModule} from "../index";
import {Observable} from "rxjs";
import {StateService, Transition} from "ui-router-ng2";
import {XXComponent} from "./XXX.component";
describe('XXComponent', () => {
beforeEach(async(() => {
TestBed.configureTestingModule({
providers: [
{provide: APP_BASE_HREF, useValue: '/'}
],
imports: [
AppModule
]
});
TestBed.compileComponents();
}));
it('should complete XXX', async(inject(
[StateService, Transition, XXComponent], (service, transition, component) => {
let oId="823";
let aId ="123";
spyOn(transition, 'params').and.returnValue({'oId': '823', 'aId': '123'});
spyOn(stateService, 'go').and.stub();
... })));
})
任何意见将不胜感激。