如何嘲笑router.navigation方法



我是在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;
});
}

请让我知道如何嘲笑这种方法。在《茉莉花》中,我嘲笑getDynamicMenus(),并称之为component.ngOnInit()。但这在Jest不起作用。请帮忙。

jasminespyOn()函数的等价物是jest.spyOn(object,methodName(。

it('should show news intially ', () => {
const navigateSpy = jest.spyOn(router,'navigate');
component.showNews();
expect(navigateSpy).toHaveBeenCalledWith(['/news']);
});

相关内容

最新更新