使用Cucumber / Behat进行JWT / API过程的场景定义

时间:2018-03-28 07:38:15

标签: cucumber behat

我有一个基本情况: - 授权(JWT)用户访问我的API - 如果用户存在,则信息将与DB同步,否则将创建 - ETC ETC

我的问题是,我将如何继续创建此方案?应该在请求中有很多(ok,4)参数,但我不想用可能会使正常用户阅读场景的信息混淆场景。

这就是我所拥有的:

  Scenario: Non Existent user access the API
    Given an authorized user access the API
    And user does not exist on API database
    When user access the API
    Then user details are added to API database
    And user does exist on API database

访问api的用户将拥有:email,auth0_id,昵称和姓名。只是不确定我是否应该在场景上编码这些信息,或者以某种方式在Context文件中进行编码。

编辑: 我可以在Context文件中设置一些“参数”,而不是在.feature文件中设置吗?即在功能文件中我说“不存在的用户访问应用程序”并在Context文件中,在与此步骤相关的功能中,我确保创建一个在数据库中不存在的用户,依此类推?这是将思考与.feature场景分开的一种好方法吗?

由于

1 个答案:

答案 0 :(得分:1)

我会这样写:

Scenario: API - new user access the API
   Given I have a new user
   When I access the API with the new user
   Then the user is added to the API database

第一步将生成用户详细信息并将其保存在变量中,第二步将调用api(使用保存的变量并生成JWT),最后一步将检查api中的详细信息。

您可以将new声明为参数:

@Then /^I access the API with the (new|other_user) user$/

无论如何,你应该以一种你可以轻易重复使用的方式宣布它尽可能简单。