【问题标题】:Evaluating multiple rspec expectations with cucumber用黄瓜评估多个 rspec 期望
【发布时间】:2015-11-20 10:19:59
【问题描述】:

我正在对黄瓜使用 rspec 期望。 似乎在黄瓜步骤中使用多个期望时,黄瓜会评估它们,直到它们中的第一个失败。 但是,我还想继续运行其他期望以清楚地了解问题所在。我能以某种方式实现这一目标吗?

示例: -假设 response = "1", code = "2" and status = "3"

expect(response).to eq("0")
expect(code).to eq("2")
expect(status).to eq("1")

Cucumber 在评估响应变量时会失败。但我想检查其他两个变量的值并获得错误状态值的输出。这可能吗?

【问题讨论】:

    标签: ruby rspec cucumber rspec-expectations


    【解决方案1】:

    最简单的是:

    expect({
      response: response,
      code: code,
      status: status}
    ).to eq({ response: "0", code: "2", status: "1" })
    

    如果测试失败,您会看到两个哈希值比较,差异清晰可见。

    【讨论】:

    • 您实际上回答了我的问题。但是,如果存在任何其他解决方案,我很感兴趣,因为在我的一个步骤中,我调用了其他步骤。如果其中一个调用的步骤失败,执行将立即停止。但我不想那样。
    • @Tians 我认为更简洁的方法是制作一个自定义 rspec 匹配器,它将请求作为参数,然后测试状态和响应。你可以在这里找到一些例子:relishapp.com/rspec/rspec-expectations/v/3-4/docs/…
    • 我不知道这是个问题,但我喜欢它。
    • @tians,不要在其他步骤中调用步骤,这是一个非常糟糕的主意。而是提取一个辅助方法,然后调用它。
    猜你喜欢
    • 1970-01-01
    • 2010-11-29
    • 1970-01-01
    • 1970-01-01
    • 2015-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多