如何解决如何从Jasmine单元测试的ActivatedRoute数据断言Observable
如何断言从activateRoute.data返回的Observable实际上是从route.data调用的一个Observable,并且在类上将其设置为Observable而非静态值?
describe('AssetListContainerComponent (SHALLOW TEST)',() => {
let component: AssetListContainerComponent;
let fixture: ComponentFixture<AssetListContainerComponent>;
let mockActivatedRoute;
let mockPage;
beforeEach(() => {
Testbed.configureTestingModule({
declarations: [AssetListContainerComponent],schemas: [NO_ERRORS_SCHEMA],providers: [
{
provide: ActivatedRoute,useValue: mockActivatedRoute
}
]
});
fixture = Testbed.createComponent(AssetListContainerComponent);
component = fixture.componentInstance;
});
beforeEach(() => {
const mockAsset = {
id: 'id',type: 'type',value: 'value'
} as Asset;
mockPage = {
count: 11,next: 'http//next',prevIoUs: 'http://prevIoUs',size: '111',current: '41',results: [mockAsset]
};
mockActivatedRoute = { data: hot('-a-',{a: mockPage}) };
});
it('should create',() => {
expect(component).toBeTruthy();
});
it('should assign page object from resolver route',fakeAsync(() => {
fixture.detectChanges();
const expected = cold('-a-',{a: mockPage});
expect(component.page$).toBeObservable(expected);
}));
});
it('should assign page object from resolver route',{a: mockPage});
expect(component.page$).toBeObservable(expected);
}));
});
export class AssetListContainerComponent implements OnInit {
page$: Observable<Dag<Plasset>>;
constructor(private route: ActivatedRoute) {}
ngOnInit(): void {
this.page$ = this.route.data.pipe(
map(res => {
return res['data'];
})
);
}
}
这发生在ngOnInit()
生命周期中。当然这是一个常见的业务逻辑案例,但是我找不到任何不包含“ subscribe()`
我是Angular单元测试的新手:)这很难。.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。