4
私はこの機能を持っている
にwindow.location.href呼び出す関数をする:私は外部のURLにナビゲートするwindow.location.hrefを使用私がテストする必要がどのようにユニットテストAngular2
login(): void {
this.userService.setSessionAndDateOnlogin();
this.loginService.getLogin()
.subscribe(
octopusUrl => window.location.href = octopusUrl);
}
。
これは私のテストです:私はこのテストを実行すると
it('login function should call the setSessionAndDateOnLogin function from the userservice and\
subscribe to the getLogin function of the loginService.',
fakeAsync(
inject(
[LoginComponent, LoginService, UserService],
(loginComponent: LoginComponent, loginService: LoginService, userService: UserService) => {
spyOn(userService, 'setSessionAndDateOnlogin');
loginComponent.login();
expect(userService.setSessionAndDateOnlogin).toHaveBeenCalled();
})
)
);
、私は次のエラーを取得する:
Some of your tests did a full page reload!
だから私は、ウィンドウオブジェクトを模擬してみました:
import { window } from '@angular/platform-browser/src/facade/browser';
...
class MockWindow {
location: {
href: ''
};
}
...
beforeEach(() => addProviders([
...
{ provide: window, useClass: MockWindow }
]));
これは何も変更されず、エラーが残ります。
誰にもこの問題の解決策がありますか?