javascript - 应该调用 ngOnInit 内部的函数

标签 javascript angular unit-testing jasmine

我是 Angular Testing 的新手,我想知道如何测试 ngOnInit 调用时调用的函数。下面是我正在尝试测试的代码

it('should call TestMethod method inside ngOnInit' , async() => {
    spyOn(component , 'TestMethod')
    fixture.detectChanges()
    expect(component.TestMethod).toHaveBeenCalled()
  })

下面是我收到的错误

Expected spy TestMethod to have been called.

BeforeEach 位于下方

beforeEach(() => {
    fixture = TestBed.createComponent(CreateRoomsComponent);
    component = fixture.componentInstance;
    fixture.detectChanges();
  });

最佳答案

将 spy 对象分配给变量并在expect函数中使用该变量

    it('should call TestMethod method inside ngOnInit' , async() => {
    const obj = spyOn(component , 'TestMethod')
    fixture.detectChanges()
    expect(obj).toHaveBeenCalled()
  })

关于javascript - 应该调用 ngOnInit 内部的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60772219/

相关文章:

javascript - Verlet/Euler 积分不准确

angular - 发射器不发射值

javascript - 带有来自 url(json 数据)的商店的 dojo dgrid 重新加载/刷新按钮

javascript - 映射函数并未应用于所有表达式

javascript - 将数组插入循环内的对象

android - Robolectric 3.8 java.util.zip.ZipException

c# - xunit 如何 N 到 N double 几乎相等

jquery 数据表 : fetch next 25 rows from databse on next page button of jQuery datatable

Angular 2 (RC 1) : Data view not refreshing when data loaded from a file

c# - 使用大字符串对方法进行单元测试