私は、次のコードを持っている...角2経路をモックするにはどうすればよいですか?
export class LoginComponent {
userName: string;
password: string;
rememberMe: boolean = false;
constructor(private auth: AuthenticationService,
private router: Router) {
...
}
...
}
私はユニットテストをしようとしていますが、私の最初の試みが失敗した....
beforeEach(() => {
router = new Router();
component = new LoginComponent(authService, router);
});
を、それがルータのコンストラクタのためのparamsを必要とするため。 Here I saw ...
beforeEach(() => addProviders([
APP_ROUTER_PROVIDERS, // must be first
{provide: APP_BASE_HREF, useValue: '/'}, // must be second
{provide: ActivatedRoute, useClass: Mock},
{provide: Router, useClass: Mock}
]));
しかし、私は、私の依存関係でAPP_ROUTER_PROVIDERS
またはMock
のどこを持っていないようですので、私はそれが古いかもしれないと思う(または私は依存関係を必要とします)。
これをどうやって嘲笑しますか?それは私が取り組んでいるテストのために重要ではない。あなたは自分自身のモックを作成して、例えば、値によってそれを提供することができ、単純なケースでは
これは実際のプロジェクトとはどのように違いますか(私が見た前に投稿しました)。 'TestBed.configureTestingModule({imports:[RouterTestingModule]});'と 'router = TestBed.get(Router);'は必要です。私はまだそれをテストしていないので、私はそれが動作するかどうかはわかりません。 – Jackie
@Jackie「実際のプロジェクト」*は何を意味していますか? – jonrsharpe
https://github.com/angular/angular/blob/master/modules/%40angular/router/test/router.spec.ts – Jackie