#angular #unit-testing #angular-spectator #spectator
#angular #модульное тестирование #angular-spectator #spectator
Вопрос:
Я пытаюсь использовать spectator для тестирования моих угловых компонентов. Я хочу использовать один из пользовательских сопоставителей, но я получаю сообщение об ошибке 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
});
});
});
Я прочитал документацию spectator и ничего не сказал об импорте пользовательских сопоставлений, а также о примерах в Интернете, в которых они не упоминают ни о чем, что нужно сделать перед их использованием.
Ответ №1:
Я решил свою проблему.
Я попытался импортировать пользовательские сопоставления следующим образом:
import { toBeEqual } from '@ngneat/spectator';
Но я получал ту же ошибку. Чтение других ответов о издевательстве над маршрутизатором Angular с spectator
Я заметил импорт:
import '@ngneat/spectator/jest';
Я не нашел инструкций об этом, чтобы использовать пользовательские сопоставления.
В любом случае, это решает мою проблему.