我正在使用@angular@9.0.7,
@ngneat/spectator@5.3.1
(与Jest一起),Inputmask@5.0.3
在一个项目中,当我运行ng serve
或者ng build
时,所有的应用程序都可以正常工作,但是当我尝试运行一个测试套件来测试使用了Inputmask
的@Pipe
时,它就会失败。
@Pipe
:import { Pipe, PipeTransform } from '@angular/core';
import Inputmask from 'inputmask';
@Pipe({
name: 'appSomePipe',
})
export class SomePipe implements PipeTransform {
transform(value: string): string {
return Inputmask.format(value, {
jitMasking: true,
mask: '1111-1',
});
}
}
@Spec
:
import { createPipeFactory, SpectatorPipe } from '@ngneat/spectator/jest';
import { SomePipe } from './some.pipe';
describe('SomePipe', () => {
let spectator: SpectatorPipe<SomePipe>;
const createPipe = createPipeFactory(SomePipe);
it('test', () => {
spectator = createPipe(`{{ '11111' | appSome }}`);
expect(spectator.element).toHaveText('1111-1');
});
});
当我运行ng test
时,会显示:
ReferenceError: customElements is not defined
2 |
> 3 | import Inputmask from 'inputmask';
注意:这个错误只在Angular 9中出现,在Angular 8中所有的测试都已经成功通过。
import Inputmask from 'inputmask';
更改为import { format } from 'inputmask';
才能使其在 Angular 9 上正常工作。 - dev_054