首页 > 解决方案 > 如何使用 jasmine 测试 Observable 订阅回调?

问题描述

我有一个 Angular9,Angular Material 表,类似于文档中的表。 https://material.angular.io/components/table/examples

我的情况的不同之处在于我在表类中实现了一个构造函数以及一个自定义数据源等。我使用在 ngOnInit() 内部调用的函数和基本上被调用的函数在实际表类中获取表的数据订阅来自服务的可观察对象,我真的不知道如何测试它,我需要帮助。 如您所见, --code-coverage 抱怨我没有涵盖订阅回调。那么我该怎么做呢?

是的,该服务已经过测试,所以我将测试分开。显然我不会在这个组件的测试文件中测试服务。我只是不明白为什么没有涵盖此代码/如何做到这一点。我正在使用 TestBed,一些代码已经被覆盖,但我没有包括它,所以我不会让这个问题变得很长。

describe('MemeTableComponent', () => {
  let component: MemeTableComponent;
  let fixture: ComponentFixture<MemeTableComponent>;
  const inputData = flattenObjectArray(gatewayInfo);

  beforeEach(async(() => {
    TestBed.configureTestingModule({
      declarations: [MemeTableComponent],
      imports: [
        NoopAnimationsModule,
        MatPaginatorModule,
        MatSortModule,
        MatTableModule,
        HttpClientTestingModule
      ],
      providers: [
        MemeService
      ]
    }).compileComponents();
  }));

  beforeEach(() => {
    fixture = TestBed.createComponent(MemeTableComponent);
    component = fixture.componentInstance;
    fixture.detectChanges();
    component.dataSource.data = inputData;
  });

  it('should compile', () => {
    expect(component).toBeTruthy();
  });
});

标签: angularjasmineangular9jasmine2.0

解决方案


推荐阅读