问题描述
如何断言从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 (将#修改为@)