此问题不是关于REST ,而是关于在后续@When
中使用@Then
中的调用返回的值。
我正在考虑使用JBehave来测试对REST api的一些调用。首先,有post
来创建用户
When I create a user with name Charles Darwin
据我了解REST,这就是Atom api的作用,ID会在地址标题中返回,例如/user/22
。那么我想断言回应。
Then user was created with a valid Id
我可以通过在Steps类中创建一个成员变量并在那里存储响应来实现这一点,之前我使用过这种方法,但这是正确的方法吗?
答案 0 :(得分:1)
是。需要存储可以在@Then方法中声明的数据。最简单的方法是使用成员变量 - 但这意味着你的@ When / @ Then需要在同一个Steps类中。另一种方法是拥有一个所有步骤都使用的共享数据对象,然后可以在一个方法中设置它并将其放入另一个方法中。如果您只想要通用的东西,可以使用Map<String,? extends Object>
作为通用数据对象。然后,如果您使用多个线程运行,则将数据对象包装在ThreadLocal中。
这就是我所看到的 - 应该使用@ BeforeScenario / @ AfterScenario方法设置/清除数据对象。