如何在玩笑中模拟 router.navigate 方法
How to mock the router.navigate method in jest
我是 Angular 中使用 Jest 进行单元测试的初学者。在我的组件中,我有 this.router.navigate()
方法。早些时候我用 Jasmine 来测试它。为此,我做了以下事情:
import { Router } from '@angular/router';
然后,
let router:Router;
然后,在 beforeEach
、
router = TestBed.get(Router);
然后,在测试用例中,
it('should show news intially ', () => {
const navigateSpy = spyOn(router,'navigate');
component.showNews();
expect(navigateSpy).toHaveBeenCalledWith(['/news']);
});
本次测试通过。但是我如何使用 Jest 做同样的事情呢?请帮助。
我有一个 ngOnInit()
方法调用另一个方法 getDynamicMenus()
。下面是 ngOnInit()
方法:
ngOnInit() {
this.getDynamicMenus();
}
getDynamicMenus() {
this.menuService.getAllMenus().subscribe(menus => {
this.menus = menus._embedded.menu;
});
}
请告诉我如何模拟此方法。在 jasmine 中,我嘲笑了 getDynamicMenus()
并调用了 component.ngOnInit()
。但这在 Jest 中不起作用。请帮忙。
茉莉花 spyOn()
函数的等价物是 jest.spyOn(object, methodName).
it('should show news intially ', () => {
const navigateSpy = jest.spyOn(router,'navigate');
component.showNews();
expect(navigateSpy).toHaveBeenCalledWith(['/news']);
});
我是 Angular 中使用 Jest 进行单元测试的初学者。在我的组件中,我有 this.router.navigate()
方法。早些时候我用 Jasmine 来测试它。为此,我做了以下事情:
import { Router } from '@angular/router';
然后,
let router:Router;
然后,在 beforeEach
、
router = TestBed.get(Router);
然后,在测试用例中,
it('should show news intially ', () => {
const navigateSpy = spyOn(router,'navigate');
component.showNews();
expect(navigateSpy).toHaveBeenCalledWith(['/news']);
});
本次测试通过。但是我如何使用 Jest 做同样的事情呢?请帮助。
我有一个 ngOnInit()
方法调用另一个方法 getDynamicMenus()
。下面是 ngOnInit()
方法:
ngOnInit() {
this.getDynamicMenus();
}
getDynamicMenus() {
this.menuService.getAllMenus().subscribe(menus => {
this.menus = menus._embedded.menu;
});
}
请告诉我如何模拟此方法。在 jasmine 中,我嘲笑了 getDynamicMenus()
并调用了 component.ngOnInit()
。但这在 Jest 中不起作用。请帮忙。
茉莉花 spyOn()
函数的等价物是 jest.spyOn(object, methodName).
it('should show news intially ', () => {
const navigateSpy = jest.spyOn(router,'navigate');
component.showNews();
expect(navigateSpy).toHaveBeenCalledWith(['/news']);
});