0
在我的角度分量設置spyOn功能我有一個函數:不會被調用茉莉花角2
populateForm(id:String, index:number){
let blogs = this.blogsService.returnBlogs()
blogs.map((blog:Blog)=>{
blog._id === id ? this.blogsService.populateForm.next({blog:blog, index:index}) : blog._id = blog._id;
})
}
我已經建立了一個測試,點擊一個按鈕而言,調用populateForm功能,從一個服務中調用一個returnBlogs函數,該函數爲我提供了一個操作數組。
但我有麻煩刺探returnBlogs功能:
it('Should be able to click element and call PopulateForm function with correct parameters',() => {
let blogs = [{_id1: 'xyz', title: 'title1', vidUrl: 'XpiipWULkXk'}, {_id1: 'abc', title: 'title2', vidUrl: 'XpiipWULkXk'}]
blogsService = TestBed.get(BlogsService)
component.blogs = blogsTest
fixture.detectChanges();
let spy = spyOn(blogsService, 'returnBlogs').and.returnValue(blogs);
let domEl = fixture.nativeElement.querySelector('.blog-thumb');
domEl.click();
expect(component.populateForm).toHaveBeenCalledWith('xyz', 1);
expect(spy).toHaveBeenCalled();
});
我得到一個錯誤:
Expected spy returnBlogs to have been called.
任何指針將不勝感激,我試圖去與什麼應該和不應該被測試
我相信'TestBed.get'會爲您創建一個新的服務實例,而不是組件所具有的一個實例。相反,創建'const serviceSpy = jasmine.createSpyObj('BlogService',['returnBlogs']);'並使用注入器來提供'{provide:BlogsService,useValue:serviceSpy}'。 – jonrsharpe