Я написал класс PerlRegExp
, унаследовал RegExp
и добавил метод replace
. Когда я запустил тесты, которые я написал, используя jest
, я получил неожиданную ошибку TypeError: p.replace is not a function
PerlRegExp
export class PerlRegExp extends RegExp {
constructor(pattern: string, flags: string) {
super(handlePattern(pattern, flags), handleFlags(flags));
}
replace(string: string, replaceValue: string) {
// ...
}
}
Код теста
import { PerlRegExp } from "../src";
describe("PerlRegExp", () => {
it("replace test \\u", () => {
const p = new PerlRegExp(" (?:- (\\w) ) ", "xig");
const r = p.replace("color-red", "\\u$1");
expect(r).toBe("colorRed");
});
});
Неожиданные результаты во время тестирование
λ npm t
> perl-regexp@0.1.0 test D:\ajanuw\perl-regexp
> jest
FAIL test/perl-regexp.test.ts
PerlRegExp
× replace test \u (3ms)
● PerlRegExp › replace test \u
TypeError: p.replace is not a function
3 | it("replace test \\u", () => {
4 | const p = new PerlRegExp(" (?:- (\\w) ) ", "xig");
> 5 | const r = p.replace("color-red", "\\u$1");
| ^
6 | expect(r).toBe("colorRed");
7 | });
8 |
at Object.<anonymous> (test/perl-regexp.test.ts:5:17)
Test Suites: 1 failed, 1 total
Tests: 1 failed, 1 total
Snapshots: 0 total
Time: 4.893s, estimated 5s
Ran all test suites.
npm ERR! Test failed. See above for more details.
Я не знаю, в чем проблема, потому что PerlRegExp
может работать нормально, за исключением этой ошибки во время тестирования, пожалуйста, помогите мне, спасибо.