【问题标题】:Passing data from one step to another using screenplay ( e.g. When -> Then )使用剧本将数据从一个步骤传递到另一个步骤(例如 When -> Then )
【发布时间】:2022-11-22 00:54:21
【问题描述】:

使用 serenity-js,黄瓜和剧本,我无法将数据从一个步骤传递到另一个步骤。例如。 :一个由漂亮的 user.attempsTo() 定义的“When”步骤,它只调用一个 web 服务,以及一个“Then”步骤,它应该只检查 web 服务的响应。 “TakeNote”忘记了上一步的数据(如我所见,甚至令人惊讶)并且“LastResponse”上下文也可能丢失......

我想有一种简单的方法可以在“When”步骤的一个 Activity 中存储一个对象(可能作为一个问题),并在“Then”步骤的一个 Activity 中取回该对象。

如果没有 Serenity,我会使用一个 World 对象,这显然是完成这项工作的一种简单方法,但我确信有一种 Serenity 漂亮的方法可以完成这项工作。

谢谢你。

布鲁诺

我尝试使用 LastResponse 和 TakeNotes 传递对象。但对象似乎丢失了。

【问题讨论】:

    标签: serenity-js


    【解决方案1】:

    我发现出了什么问题(回答自己)。 user.attempsTo() 仅在要求解决 promise 时才会在下一步之前实际处理,因此如果前面有 returnawait,或者如果使用箭头函数将其声明为隐式返回 @987654324 @. 没有 promise 决议,交互就不会按照描述的顺序执行,这真的不好。 错误代码的症状是交互没有记录在他们的步骤中,而是更进一步。希望这可以帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-31
      • 2021-02-17
      相关资源
      最近更新 更多