当前位置: 首页 > 知识库问答 >
问题:

RxJs-有损拉链大理石测试

东方嘉佑
2023-03-14

在这篇文章之后,我决定为这个操作符编写一个大理石测试

下面是一个基本测试:

  it('Test lossy zip', () => {

    const a = hot('a---a--------a-');
    const b = hot('--b----b---b---');

    const observable = zip(
      a.pipe(take(1)),
      b.pipe(take(1))
    ).pipe(
      mergeMapTo(from(['1'])),
      repeat()
    );
    const expected = cold('--1----1-----1-');
    expect(observable).toBeObservable(expected);
  });

这个测试按预期通过了。然而,当我决定发射两个排放物时,就像这样,它失败了:

const a = hot('a---a--------a-');
const b = hot('--b----b---b---');

const observable = zip(
  a.pipe(take(1)),
  b.pipe(take(1))
).pipe(
  mergeMapTo(from(['1', '2'])), //Here, emitting two items instead of one
  repeat()
);

我希望得到的可观测结果如下所示:

const expected = cold('--(12)----(12)-----(12)-');

或者至少是这样:

const expected = cold('--12---12----12-');

然而,他们都失败了。

这是茉莉大理石中的一个bug还是我的期望是错误的?

共有1个答案

居晗日
2023-03-14

显然,根据官方文件(我读得不够透彻),括号和组的内容占据了相关数量的框架:

<代码>'(abc)-|'<代码>:在第20帧上,发出<代码>a<代码>、<代码>b<代码>、和<代码>c<代码>,然后在第80帧上完成<代码>

这意味着组排放的工作测试如下所示:

  it('Should emit a grouped value', () => {

    const a = hot('a------a---------a---');
    const b = hot('--b-------b----b-----');

    const observable = zip(
      a.pipe(take(1)),
      b.pipe(take(1))
    ).pipe(
      mergeMapTo(from(['1', '2'])),
      repeat()
    );

    const expected = cold('--(12)----(12)---(12)');
    expect(observable).toBeObservable(expected);
  });
 类似资料:
  • 我有一个简单的api请求,它向一个对象返回一个可观察的对象,该对象中有一组项,每个项中都有一个链接。因此,我想在当前异步流中直接获取链接后面的数据,但我收到一个CORS错误,错误是: 这是否可能与我当前的函数?还是我误解了一些基本概念?

  • 我有2个API调用第二个调用使用第一个调用返回的东西。有了promise,这很容易: 我将如何使用可观测数据来实现这一点?

  • 最近几天一直在边期末考试边面试,太累了,好在昨天影石一面之后,今天就接到hr的电话大概了解了一下我的情况,已oc 实习期间主要测试哪些模块的一些工作内容呢? 那常用的测试用例设计方法有哪些? 为什么选择软件测试这个行业呢? 那软件测试的一个工作内容职责的理解是什么? 对于测试门槛比较低重复工作内容很多的看法是什么? 对加班的看法? Linux常用的查询命令有哪些? TCP和UDP协议的共同点跟差异

  • 大致是下面这些问题(顺序不记得了) 1 自我介绍 2 软件测试方法 3 微信发红包设计测试用例 4 mysql数据库基本命令  5 linux命令常用哪些 6 Python了解哪些;Python有哪些数据类型;Java了解哪些?数据库 Tomcat连接的过程是什么 ? 1-100里面能被3整除的数有哪些?不限制语言,可以写出代码吗? 7 接口测试了解哪些 8 如何判断前端问题还是后端问题 9 如果

  • Haskell中的Zippers基本上是指向数据结构(如tree某个特定位置的指针。 让我们考虑一个具有5个元素[45,7,55,120,56]的tree ,它可以表示为完美的二叉树。 如果我想更新此列表的最后一个元素,那么我需要遍历所有元素以在更新之前到达最后一个元素。 对? 但是,如果我们能够以这样的方式构造我们的树,即具有N元素的树是[(N-1),N]的集合。 然后,我们不需要遍历所有不需要

  • 我的后端有两个图形查询:,它返回一个家谱作为有孩子的节点,也可以有孩子等等,和,它返回给定人的图片。 我的目标是调用,迭代树,如果这个人被称为Alice,那么我想为这个人调用,并将信息添加到树中的节点。这应该为树上的所有爱丽丝做。 我的问题是,获取图片的调用是异步的,因此在信息添加到节点之前会返回数据。我没有按照这个问题中的建议使用,因为调用获取图片是在迭代树时发生的,我不能在的管道方法中调用它。