我想为我在 JBehave 中的验收测试编写一个“常见”故事,仅当用户不存在时才添加该用户。“createUser”故事本身就是一个验收测试用例。我想GivenStories
在“modifyUser”、“deleteUser”等上引用它——但是当“createUser”故事想要添加一个已经存在的用户时,我不想得到一个错误。
如何确保仅在需要时才执行“createUser”?我在 JBehave 中找不到“条件故事”的任何解决方案。我也不能将“createUser”故事写成幂等的。
这不是 JBehave 本身的问题 - 它不会在此级别上处理。我猜你想要这样的场景:
Given user "John" exists with ID 1234
When delete user request for ID 1234 was processed
Then no user entry for ID 1234 should exist
只有在给定步骤的绑定代码中,您才会检查并在必要时创建用户(执行您的条件插入操作)。这是在您的 Java 代码中处理的,而不是在验收测试级别。它看起来像这样:
@Given("Given user \"$userName\" exists with ID $userId")
public void givenUserExistsWithId(String userName, int userId)
{
if (!persistence.existsUser(userId))
{
persistence.createUser(userId, userName);
}
}
这样,场景就干净了,代码确保了给定状态执行后的预期状态。