JavaScript (ES6) и fetch (): как я могу выбросить ошибку, чтобы триггеры catch? (Тестирование с помощью шутки)

Он работает:

Uri selectedUri = Uri.parse(Environment.getExternalStorageDirectory() + "/myFolder/");
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(selectedUri, "resource/folder");
startActivity(intent); 

У вас есть хорошая codding:)

EDIT: Если текущее решение вам не поможет, то эти библиотеки выбора файлов / каталогов могут быть полезно: https://android-arsenal.com/tag/35

0
задан Ullas Hunka 13 July 2018 в 08:04
поделиться

2 ответа

Вот что мне пришлось сделать:

Я использовал jest-fetch-mock для издевательства над запросами.

обещание быть правильно отклонено, мне пришлось переопределить аргумент init функции mockResponseOnce.

Вот как закончилось испытание:

  it("recognizes when a response's status is not okay", () => {
    fetch.mockResponseOnce(JSON.stringify({ someResponse: "someResponse" }), { status: 403 });
    expect.assertions(1);

    return getRequestWithHeader(fullTestUrl, article).catch(err => {
      expect(err.someResponse).toEqual("someResponse");
    });
  });

Установив статус явно, он автоматически устанавливает ok: false в ответе, вызывая функцию.

Я также применил советы SomePerfomance и реорганизовал такую ​​функцию:

export const getRequestWithoutHeader = fullUrlRoute =>
  fetch(fullUrlRoute)
    .then(response => {
      if (!response.ok) {
        return Promise.reject(response);
      }
      return response.json();
    })
0
ответ дан J. Hesters 17 August 2018 в 13:23
поделиться

вы можете попробовать это

  fetch(fullUrlRoute)
  .then(response =>{
      if (response.ok) {
        return response.json();
      }
      else throw response
  })
  .then(json=> {
      console.log(json);
    })
  .catch(error =>{
      console.log(error)
   });

Надеюсь, что эта помощь вам

0
ответ дан Suban unique 17 August 2018 в 13:23
поделиться
  • 1
    Это в основном моя реализация два, просто потому, что она не работает, потому что с вашим способом вложенности она response не определена при регистрации !response.ok. – J. Hesters 13 July 2018 в 08:08
  • 2
    я обновил свой ответ. Проверь это сейчас – Suban unique 13 July 2018 в 08:31
  • 3
    Также не работает к сожалению :( – J. Hesters 13 July 2018 в 09:08
  • 4
    попробуйте распечатать console.log (ответ) сразу после извлечения, например .then (response = & gt; {console.log (response)}) – Suban unique 16 July 2018 в 05:38
  • 5
    Это вы не получаете никакого ответа, тогда вы делаете это неправильно. Visiit developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch – Suban unique 16 July 2018 в 05:41
Другие вопросы по тегам:

Похожие вопросы: