黄瓜Js,如果我需要使用“给定”步骤中的值,什么是最佳实践?

时间:2019-11-19 17:03:51

标签: javascript selenium-webdriver bdd cucumberjs

我发现的方法是

Given(
  `Step1`,
  async function() {
    const IwantToUseThisObj = {
      A: 'a',
      B: 'b'
    }

    this.IwantToUseThisObj = IwantToUseThisObj
  }
)

Then(`Step2`, async function() {
  IwantToUseThisObj = this.IwantToUseThisObj
})

但是我不确定这是否是最佳实践,如果我需要大量使用它,它看起来很重复,

还有更好的方法吗?我只想使用在给定步骤中使用的值

2 个答案:

答案 0 :(得分:0)

是的,将世界一流的数据存储起来以进行重用是黄瓜的最佳做法

答案 1 :(得分:0)

在方案中的步骤之间传递数据的最可靠和最受接受的方法是使用方案上下文或“世界”对象 client = storage.Client(request.GCP_Project) bucket = client.get_bucket(request.GCP_Bucket) blob = bucket.blob(request.GCP_Path) model_file = BytesIO() blob.download_to_file(model_file) loaded_model = pickle.loads(model_file.getvalue()) request_data = {'A': [request.A], 'B': [request.B], 'C': [request.C]} df_resp = pd.DataFrame(data=request_data) response = loaded_model.predict_proba(df_resp) output = {"Rating": response[0]} return output 。这是一个示例:

功能文件

this

步骤定义

Feature: Passing data between steps

  Scenario: Passing data
    Given I set the value to "test"
    Then the value should be "test"

在线示例:https://testjam.io/?p=cHsYgzrkRiI9dmkm1IyR