在Jasmine单元测试中调用Angular Component Instance方法

时间:2018-01-31 18:57:07

标签: javascript angular jasmine

我有一个方法,它是我在Angular中创建的自定义组件的一部分:

public editSite(site: siteModel): void {
    this.currentState = pageState.EditSite;
    this.editSiteService.siteId = site.guid;
}

我想创建一个测试,在我的Jasmine测试中执行此函数,然后验证this.currentStatethis.editSiteService.siteId是否已设置为其预期值。

以下是我目前测试中的内容:

describe('method: editSite()', () => {
    it('should execute and set variables accordingly', () => {
        // Arrange - Act
        const editSiteSpy = spyOn(component, 'editSite').and.callThrough();
        // Assert
        expect(editSiteSpy).toHaveBeenCalled();
    });
});

我正常设置组件和夹具:

let component: SiteComponent;
let fixture: ComponentFixture<SiteComponet>;

fixture = TestBed.createComponent(SiteComponent);
component = fixture.componentInstance;

然而,当测试运行时:

  

SiteComponent方法:editSite()应执行并相应地设置变量FAILED

有关为何可能发生这种情况的任何线索?有没有更好的方法来测试我正在寻找的功能?

由于

0 个答案:

没有答案