代码之家  ›  专栏  ›  技术社区  ›  Arnaud Denoyelle

在功能测试中链接承诺/可观察到的最优雅的方法

  •  0
  • Arnaud Denoyelle  · 技术社区  · 7 年前

    以下是我正在进行的项目中现有测试的示例:

    AppPage.lastnameInput().clear().then(function () {
      AppPage.lastnameInput().sendKeys(lastname).then(function () {
        AppPage.firstnameInput().clear().then(function () {
          AppPage.firstnameInput().sendKeys(firstname).then(function () {
            AppPage.ibanInput().clear().then(function () {
              AppPage.ibanInput().sendKeys(IBAN).then(function () {
                $('body').click().then(function () {
                  callback();
                });
              });
            });
          });
        });
      });
    });
    

    在我看来,这可能会被压扁。有点像。

    foo(
      AppPage.lastnameInput().clear(),
      AppPage.lastnameInput().sendKeys(lastname),
      AppPage.firstnameInput().clear(),
      AppPage.firstnameInput().sendKeys(firstname),
      AppPage.ibanInput().clear(),
      AppPage.ibanInput().sendKeys(IBAN),
      $('body').click(),
    ).then(() => callback())
    

    我试过 forkJoin() 但似乎在执行下一个观测之前,它并不等待第一个观测完成。

    我自己也可以实现这样的函数,但它似乎非常通用,所以我想知道是否已经存在一个更标准的函数。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Dzhavat Ushev    7 年前

    你可以使用 concat() 函数按顺序(而不是并行执行 forkJoin() 作品)。

    推荐文章