0

这个问题不是关于 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 类中创建一个成员变量并将响应存储在那里来做到这一点,我以前也使用过这种方法,但这是正确的方法吗?

4

1 回答 1

1

是的。需要存储可以在 @Then 方法中断言的数据。最简单的方法是拥有一个成员变量 - 但这意味着您的 @When/@Then 需要在同一个 Steps 类中。另一种方法是拥有一个所有步骤都使用的共享数据对象,然后您可以在一个方法中设置它并在另一个方法中获取它。如果您只想要通用的东西,您可以将 aMap<String,? extends Object>作为您的通用数据对象。然后,如果您使用多个线程运行,则将数据对象包装在 ThreadLocal 中。

这就是我所看到的 - 应该使用 @BeforeScenario/@AfterScenario 方法设置/清除数据对象。

于 2012-03-16T16:09:06.393 回答