升级到Angular / rxjs 6打破了业力测试

吉特尼克

当我升级到新版本的Angular之后,我以前可以进行的测试之一失败了,我不知道为什么。即我有一个记录错误的功能:

import { Observable, of } from 'rxjs';

export function handleError<T>(operation='operation', result?: T) {
  return (error: any): Observable<T> => {
    console.error(error);
    console.info(`${operation} failed: ${error.message}`);
    return of(result as T);
  }
}

我用以下方法进行测试:

it('#handleError return function should return an object', () => {
  let errorFunction = handleError('dummyFetch', [{}]);
  expect(typeof errorFunction({ message: 'Something went wrong.'})).toEqual('object');
  expect(errorFunction({ message: 'Something went wrong.'})).toEqual(of([{}]));
});

失败的行是,expect(errorFunction({ message: 'Something went wrong.'})).toEqual(of([{}]));并且报告了错误:Expected $._subscribe = Function to equal Function.可能是由于异步错误功能导致测试失败了吗?

编辑:这是我解决的解决方案:

it('#handleError return function should return an object', () => {
  let errorFunction = handleError('dummyFetch', [{}]);
  expect(typeof errorFunction({ message: 'Something went wrong.' })).toEqual('object');

  let error = errorFunction({ message: 'Something went wrong.' });
  error.subscribe(value => {
    expect(value).toEqual([{}]);
  });
});
安德鲁·弗雷泽(Andrew Fraser)

如果您将测试重写为

it('#handleError return function should return an object', () => {
  let errorFunction = handleError('dummyFetch', [{}]);
  expect(typeof errorFunction({ message: 'Something went wrong.'})).toEqual('object');
  errorFunction.subscribe((result) => {
        expect(result).toEqual([{}]);
    });
});

由于可观察到的原因,该测试失败了,您的最终期望订阅将解决此问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从 RxJS5 升级到 RxJS6

升级到Angular / AngularCLI / Rxjs版本6,但“可观察”类型不存在“获取属性”

升级到Angular 7,rxjs6时,如何解决“ WheelEvent”类型上不存在“ Property'wheelDelta”问题?

升级到RC 6和RxJS Beta 11后,flatMap丢失

将rxjs升级到6后,属性“ map”在类型“ Observable”上不存在

升级到Angular 10将打破ExcelJs

.NET从3.5升级到4.5打破了依赖关系

在升级到Angular 8且Jest损坏的测试之后

在RC6中升级到@ angular / forms

无法升级到Angular 6,范围无效

升级到Angular 6后构建失败

升级到Angular 6后npm安装错误

无法将 Angular 从 6 升级到 7

升级到 iOS 11.3 打破了 __weak UIAlertAction

将Angular 6应用程序升级到Angular 8时出现加载scss的错误

想要将项目从Angular v5升级到Angular v6

从Angular 5升级到Angular 6,Bootstrap按钮样式没有间距

将Angular 6升级到Angular 7 beta

将Angular 2.21升级到2.25时,与Jasmine httpBackend相关的测试失败

升级到Angular 8后进行ng测试“无法解析'fs'”

Angular CLI从6升级到7无法正常工作

将应用程序升级到Angular2 RC6

升级到angular-6.x会出现“ Uncaught ReferenceError:未定义全局”

升级到 Angular 6,错误:“拒绝删除”......“在外面”......“而不是链接”

Angular2升级到RC6,找不到traceur

如何在 Angular 6 项目上正确地从 bootstrap 3.3.7 升级到 4.0

将Angular素材升级到版本6后的版式配置问题

升级到Redux v6

支持OpenJDK并升级到CDH 6