在构造函数中使用Jasmine私有ActivatedRoute进行测试的方法如下:
import { ActivatedRoute } from '@angular/router';
import { BehaviorSubject } from 'rxjs';
import { MyClass } from './my-class'; // 要测试的类
class MockActivatedRoute {
private subject = new BehaviorSubject(this.testParams);
params = this.subject.asObservable();
// 设置测试参数
set testParams(params: any) {
this.subject.next(params);
}
}
function createMyClass(routeParams: any) {
const activatedRoute = new MockActivatedRoute();
activatedRoute.testParams = routeParams;
return new MyClass(activatedRoute);
}
describe('MyClass', () => {
it('should create', () => {
const myClass = createMyClass({ id: 1 });
expect(myClass).toBeTruthy();
});
it('should get route params', () => {
const myClass = createMyClass({ id: 1 });
myClass.getRouteParams().subscribe(params => {
expect(params.id).toBe(1);
});
});
});
在上述代码中,我们首先创建了一个MockActivatedRoute类来模拟ActivatedRoute,并使用BehaviorSubject来模拟params属性的行为。然后,我们创建了一个辅助函数createMyClass,用于创建MyClass的实例,并将模拟的ActivatedRoute传递给构造函数。最后,我们编写了两个测试用例,分别测试了MyClass的创建和获取路由参数的功能。
这样,我们就可以在构造函数中使用Jasmine私有ActivatedRoute进行测试了。注意,在这个示例中,我们没有提及任何特定的云计算品牌商,如果需要推荐相关产品和产品介绍链接地址,请提供具体要求。
领取专属 10元无门槛券
手把手带您无忧上云