TypeError: Невозможно заблокировать несуществующую собственную выборку свойства
declare namespace NodeJS {
interface Global {
fetch: (url: string, options?: Object) => Promise<any>;
}
}
declare let global: NodeJS.Global;
it("should handle fetch throwing an error message", () => {
const fetchFailure = "Test fetch error!";
const fetchStub: sinon.SinonStub =
sinon.stub(global, "fetch").callsFake(
(url: string, options?: Object): Promise<any> => {
return new Promise((resolve, reject) => {
throw (fetchFailure);
});
});
try {
return getConfigTest.getData(arguments)
.then(() => {
expect.fail(null, null, "Attempt to retrieve when no configuration exists should have thrown exception");
})
.catch((reason) => {
if (reason instanceof someError) {
expect(reason).to.equals("throwing error");
} else {
expect(reason).instanceOf(Error);
expect(reason.message).to.equals("The request failed.");
}
});
} finally {
fetchStub.restore();
}
});
Примечание: я вызываю метод getData и getData, возвращающий другой метод handle-fetch и внутри дескриптора fetch'fetch' получает применение, о котором я здесь пишу.
Я использую этот метод в интеграционном тесте Pact.Я заглушаю метод извлечения и возвращаю свои собственные данные, не взаимодействуя с реальным методом.
Может ли кто-нибудь помочь мне в этом.Если вам нужна дополнительная информация.Пожалуйста, дайте мне знать в разделе комментариев?
Обновление: -
export async function getData(arguments): Promise<dataConfig> {
const json: any = await handle-fetch(`path_to_Api);
return json as dataConfig;
}
export async function handle-fetch<T>(arguments): Promise<T> {
let response: any;
let apiErr: any;
options = _.merge({
headers: {
"Accept": "application/json"
}
}, options);
try {
response = await fetch(url, options); //**here is the method which i want to stub**
Я написал несколько тестов для правильного идентификатора.Но я писал тест в случае неудачи при извлечении метода handle-fetch.
В моем другом проекте узла я проделал этот путь, и он работает отлично.Но это реактивный проект.Нужно ли устанавливать что-то конкретное, чего я не получаю по умолчанию.