একটি রাউটিং পাথের জন্য পরীক্ষার স্যুট তৈরি করার সময় একই ইস্যুতে ছড়িয়ে পড়ে:
{
path: 'edit/:property/:someId',
component: YourComponent,
resolve: {
yourResolvedValue: YourResolver
}
}
উপাদানটিতে, আমি উত্তীর্ণ সম্পত্তিটি এইভাবে শুরু করেছি:
ngOnInit(): void {
this.property = this.activatedRoute.snapshot.params.property;
...
}
পরীক্ষা চালানোর সময়, আপনি যদি আপনার মক অ্যাক্টিভেটরউটে "ইউজারভ্যালু" তে কোনও সম্পত্তি মান পাস না করেন, তবে "ফিক্সার.ডেসটেক্ট চেঞ্জস ()" ব্যবহার করে পরিবর্তনগুলি সনাক্ত করার সময় আপনি অপরিজ্ঞাত হয়ে উঠবেন। এটি কারণ অ্যাক্টিভেটেডরউটের জন্য মক মানগুলিতে সম্পত্তি প্যারামগুলি নেই rop তারপরে, মক ইউজভ্যালুটির জন্য উপাদানগুলিতে 'this.property' আরম্ভ করার জন্য সেই সমস্ত প্যারামগুলি থাকা দরকার। আপনি এটি হিসাবে যুক্ত করতে পারেন:
let fixture: ComponentFixture<YourComponent>;
let component: YourComponent;
let activatedRoute: ActivatedRoute;
beforeEach(done => {
TestBed.configureTestingModule({
declarations: [YourComponent],
imports: [ YourImportedModules ],
providers: [
YourRequiredServices,
{
provide: ActivatedRoute,
useValue: {
snapshot: {
params: {
property: 'yourProperty',
someId: someId
},
data: {
yourResolvedValue: { data: mockResolvedData() }
}
}
}
}
]
})
.compileComponents()
.then(() => {
fixture = TestBed.createComponent(YourComponent);
component = fixture.debugElement.componentInstance;
activatedRoute = TestBed.get(ActivatedRoute);
fixture.detectChanges();
done();
});
});
উদাহরণস্বরূপ আপনি পরীক্ষা শুরু করতে পারেন:
it('should ensure property param is yourProperty', async () => {
expect(activatedRoute.snapshot.params.property).toEqual('yourProperty');
....
});
এখন, আসুন আমরা বলি যে আপনি একটি পৃথক সম্পত্তি মান পরীক্ষা করতে চান, তারপরে আপনি আপনার মক অ্যাক্টিভেটেডরউটটিকে আপডেট করতে পারেন:
it('should ensure property param is newProperty', async () => {
activatedRoute.snapshot.params.property = 'newProperty';
fixture = TestBed.createComponent(YourComponent);
component = fixture.debugElement.componentInstance;
activatedRoute = TestBed.get(ActivatedRoute);
fixture.detectChanges();
expect(activatedRoute.snapshot.params.property).toEqual('newProperty');
});
আশাকরি এটা সাহায্য করবে!