在其他 fitnesse fixtures 中使用 let 创建变量

Using let created variables in other fitnesse fixtures

我在使用 let 创建的变量时遇到问题。 我正在使用 RestFixture 从 http 位置到 get/post,我确实想在另一个夹具中使用这个答案:

  1. 我正在通过 post
  2. 获取数据
  3. 使用 let
  4. 将 body 保存为变量
  5. 在注释行中打印我的变量,看看它是否真的有效

|!-CustomRestFixture-!|http://addres |CONFIG|
|setHeader |Content-Type : application/json |
|设置正文| {一些 JSON body} |
|POST | |200 |Content-Type: text/plain | |
|let |myvariable |body|//* | |
|评论|这是我的变量:%myvariable% |

  1. 然后我想在另一个比较两个字符串的(定制的)夹具中使用它(第二个夹具在同一测试页内):

!|DecTable|
|我的第一个值|我的第二个值|这相等吗?|
|aaa |aaa |真|
|%myvariable% |任何东西 |true |

  1. 我注意到我的变量在 RestFixture 中的其他任何地方都不起作用。我不能再通过了,但它应该是全球性的

有什么解决办法吗?提前致谢

我不知道RestFixture的let关键字的具体情况。但是您可以使用 decision/script 表中的 standard Slim approach to define 'symbols' 来使用变量。然后可以在任何灯具中使用这些符号。

使用 my fixture library you could combine a (Json) Http Test and Compare Fixture 实现您所描述的。

标签是全局的,可以在 rest fixture 实例之间共享。

但是,如果您想在自己的自定义灯具中使用标签,可以将数据保存到如下所示的变量中,然后在任何其他自定义灯具中使用它

|let|card_number1|js |response.jsonbody.card.number|$card=|

这会将卡号保存到全局变量中,以便在其他表中使用

但我想提醒您的一点是,您不必编写单独的夹具来比较来自其余夹具的响应。如果您有 json 响应,您可以使用 response.jsonbody.element1 访问您的响应内容,如果您有 xml 响应,则可以使用 /root/element1/text() 访问您的响应内容。因此,在端点发布请求和验证都可以一次性完成。下面是一个例子

|Table: RestFixture|${protocol}://${baseuri}:${port}/${resource_path}|longtimeoutconfig                                                                     |    
|setBody                                          |$req0                                                                                                                                   |
|setHeader                                        |Content-Type: application/json                                                                                                          |
|POST                                             |                                                 |200|                                                   |                    |
|let                                              |amount1                                          |js |response.jsonbody.amount                           |${amount}                     |

可以在 https://cloud.github.com/downloads/smartrics/RestFixture/RestFixture-3.0.pdf

找到一些很好的例子