写一个JBehave的故事

时间:2012-03-14 14:47:03

标签: bdd jbehave

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

1 个答案:

答案 0 :(得分:1)

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

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