Как смоделировать XMLHTTPRequest в машинописи для модульного теста

1

У меня есть этот код в моем файле src, и я хочу написать для него единичный тест. Я использую karma-webpack в угловом приложении 4. Пожалуйста, предложите

public static load(jsonFile: string): Promise<boolean> {
console.log('calling loadinstance');
return new Promise((resolve: any, reject: any) => {
  const xobj = new XMLHttpRequest();
  xobj.overrideMimeType('application/json');
  xobj.open('GET', jsonFile, true);
  xobj.onreadystatechange = () => {
    const readyOK = 4;
    const responseOK = 200;
    if (xobj.readyState === readyOK) {
      if (xobj.status === responseOK) {
        ConfigLoader.data = JSON.parse(xobj.responseText);
        resolve(true);
      }
      else {
        reject('Could not load file '${jsonFile}': ${xobj.status}');
      }
    }
  };
  xobj.send(null);
});

}

Теги:
angular
unit-testing
webpack
jasmine

1 ответ

0

Спокойное использование spyOn.

it('Your Service', inject([YourService], (YourService: yourService) => {
  spyOn(yourService, 'load').and.returnValue(loadedJSON);
  • 0
    Я сам тестовый метод нагрузки. Можно ли шпионить за тем же методом, который мы тестируем?
  • 0
    Зачем вам тестировать сам сервис, если вы уже знаете его результат? Сервис не предназначен для тестирования, потому что вы тестируете не реальный сервис, а фальшивку. Таким образом, ответ является поддельным. Вы тестируете свой компонент и HTML.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню