0

我正在尝试使用旁观者来测试我的 Angular 组件。我想使用其中一个自定义匹配器,但出现错误Property 'toBeEmpty' does not exist on type 'JestMatchersShape<Matchers<void, Element>, Matchers<Promise<void>, Element>>'

该组件非常简单,这是一个简单的测试:

  import { FormControl } from '@angular/forms';
  import { Spectator, createComponentFactory } from '@ngneat/spectator';

  import { imports } from '../../shared.module';

  import { InputComponent } from './input.component';

  describe('InputComponent', () => {
    let spectator: Spectator<InputComponent>;
    const createComponent = createComponentFactory({
      component: InputComponent,
      imports: imports,
    });

    describe('label', () => {
      it('should not show when not passed', () => {
        spectator = createComponent({
          props: {
            control: new FormControl(),
          },
        });

        const matLabel = spectator.query('mat-label');

        expect(matLabel).toBeEmpty(); // <-- Error here
      });
    });
  });

我阅读了旁观者的文档,并没有说任何关于导入自定义匹配器的内容,还有互联网上的示例,他们在使用它们之前没有提到任何要做的事情。

4

1 回答 1

1

我解决了我的问题。

我尝试像这样导入自定义匹配器:

   import { toBeEqual } from '@ngneat/spectator'; 

但我得到了同样的错误。阅读有关模拟 Angular 路由器的其他答案时,spectator 我注意到了一个导入:

   import '@ngneat/spectator/jest';

为了使用自定义匹配器,我没有找到有关它的说明。

无论如何,它解决了我的问题。

于 2020-11-11T11:02:20.020 回答