Jasmine kullanarak açısal 2 kod için test vakası yazıyorum. Kullanıcı oturumu kapattıktan sonra giriş sayfasına geri dönmeye çalışıyorum. Sayfa yerini nasıl test edebilirim?Köşeli için Yasemin Test Çantası 2- Diğer sayfaya gitme
6
A
cevap
3
Yapmanız gereken tek şey, yönlendirici gezinme yönteminin doğru argümanla (yani, giriş sayfasının rotası) çağrıldığını test etmektir. Gerçek bir navigasyonu test etmeye çalışmak, bir birim testi için gerekenden daha fazla yan etkiye neden olabilir.
Router.navigate
yönteminin çağrıldığını kontrol etmek için, bir saplama ve casus kullanmanız yeterlidir. Ben yönlendirici kullanılmıyorsa am
@Component({})
class SomeComponent {
constructor(private router: Router) {}
logout() {
this.router.navigate(['/login'])
}
}
let routerStub;
beforeEach(() => {
routerStub = {
navigate: jasmine.createSpy('navigate');
}
TestBed.configureTestModule({
declaration: [ SomeComponent ],
providers: [
{ provide: Router, useValue: routerStub }
]
});
});
it('it should navigate to login after user logs out',() => {
let component = TestBed.createComponent(SomeComponent).componentInstance;
component.logout();
expect(routerStub.navigate).toHaveBeenCalledWith(['/login']);
})
0
Eğik takım açısal çevrenin tüm yerli yönlerini içine test yararlanmak için çok çalıştı. Yerel açısal yönlendiriciyi kullanıyorsanız, kullanmanız için test yaptırmışlardır. Bu BLOG kontrol edin. Açısal yönlendirici kullanmıyorsanız, o zaman kendi başınasınız.
. Bunun yerine, NavController kullanarak. Bu konuda herhangi bir öneriniz var mı? – devtiwa
NavController için bir saplama oluşturun ve 'push' yöntemi veya' setRoot' üzerinde casus yapın. hangisini kullanıyorsunuz? –
'let nav = {setRoot: jasmine.createSpy ('setRoot')}' –