Я пытаюсь добавить несколько новых пользовательских сопоставлений в jasmine и использовать его, цель состоит в том, чтобы создать файл, который регистрирует 2 сопоставителя, и все эти сопоставители должны быть доступны для каждого тестового файла с одной регистрацией.
, поэтому у меня есть файл с именем custom-matchers.ts
/// <reference path="custom-matchers.d.ts"/>
(() => {
beforeEach(() => {
jasmine.addMatchers({
toHaveText: () => {
return {
compare: (actual, expected) => {
return {
pass: actual.getText().then(pass => pass === expected)
};
},
};
},
toBePresent: () => {
return {
compare: (actual, expected) => {
return {
pass: actual.isPresent().then(pass => pass === expected),
};
},
};
}
});
});
})();
Файл определения типа с именем custom-matchers.d.ts
(я пробовал с другим именем, чем файл ссылок, но он такой же):
declare namespace jasmine {
interface Matchers<T> {
toHaveText(text: any): boolean;
toBePresent(text: any): boolean;
}
}
этот файл зарегистрирован в другом файле с именем e2e-helper, этот файл импортируется в каждый тестовый файл e2e-helper.ts
:
/// <reference path="custom-matchers.d.ts"/>
import './custom-matchers';
Когда я пытаюсь использовать его в тестефайл для примера:
expect(object as any).toBePresent();
Я получил ошибку:
Свойство 'toBePresent' не существует для типа 'Matchers'