3
我正在努力弄清楚如何將angular的激活路線存根到我的目的。在我的組成部分之一,我使用的路由快照得到激活路由的URL的一部分:Stub ActivatedRoute在Angular 2中的測試
let activatedPath = this.route.snapshot.children[0].url[0].path;
在我的測試中,我發現了錯誤:
Error: Error in :0:0 caused by: undefined is not an object (evaluating 'this.route.snapshot.children[0].url')
所以我想我需要存根激活路線:
class FakeActivatedRoute {
// stub detail goes here
}
,並在我的測試爲它提供:
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [RouterTestingModule],
declarations: [
SiteAdminComponent
],
schemas: [NO_ERRORS_SCHEMA],
providers: [
{ provide: ActivatedRoute, useClass: FakeActivatedRoute }
]
})
.compileComponents();
}));
任何人都可以提供任何指導方面的存根實施,讓我去.snapshot.children[0].url[0].path
?我目前毫無進展迅速:-)
搜索[angular testing guide]上的'ActivatedRoute'(https://angular.io/docs/ts/latest/guide/testing.html)。有一個存根的例子。但是,我正試圖爲自己實現它,但我不知道如何設置組件創建時的testParams _before_。也許我們可以互相幫助? :) – 27leaves
我現在也有_how注入部分。它可以在提供程序中的'activatedRoute = new ActivatedRouteStub();'在beforeEach'和'{provide:ActivatedRoute,useValue:activatedRoute}'中使用。 我沒有使用快照,所以我不能幫你解決這個問題,但我認爲以此爲出發點,它不應該那麼難;) – 27leaves
有關這方面的消息嗎?我也在苦苦掙扎。 – Striped