Как смоделировать функцию, которая возвращает строку base 64 - PullRequest
3 голосов
/ 31 октября 2019

У меня есть компонент vue, который имеет функцию:

...
reader.onload = () => {
    let base64String = btoa(reader.result);
  };
...

Строка base64 - из файла, введенного с помощью FileReader. Мне нужно передать строку base 64 в API, но в тесте с jest, как я могу издеваться над reader.onLoad (), чтобы он возвращал просто простую строку base64?

Спасибо.

1 Ответ

1 голос
/ 31 октября 2019

На высоком уровне вы можете попытаться переместить извлечение base64String в его собственную функцию, а затем смоделировать эту функцию:

reader.getBase64String = () => {
  return btoa(reader.result)
}

reader.onload = () => {
  let base64String = reader.getBase64String()
  // rest of implementation
};

Тогда в вашем тесте (это псевдокод, возможно, не скомпилируется):

MyTestReader extends Reader {
  this.getBase64String = () => {
    return "SSBsaWtlIHRvIExPTAo="
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...