0

我想为我在 JBehave 中的验收测试编写一个“常见”故事,仅当用户不存在时才添加该用户。“createUser”故事本身就是一个验收测试用例。我想GivenStories在“modifyUser”、“deleteUser”等上引用它——但是当“createUser”故事想要添加一个已经存在的用户时,我不想得到一个错误。

如何确保仅在需要时才执行“createUser”?我在 JBehave 中找不到“条件故事”的任何解决方案。我也不能将“createUser”故事写成幂等的。

4

1 回答 1

1

这不是 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);
    }
}

这样,场景就干净了,代码确保了给定状态执行后的预期状态。

于 2013-02-17T15:14:43.143 回答