我一直在尝试在 Ruby 中学习 Cucumber,我认为最好的方法是制作我自己的项目。但是,我想知道什么是好的“给定”条款。
据我了解,“Given”基本上是一个设置,“When”是被测函数,“Then”是预期结果。
例如,假设我正在制作一个基于实体踏入熔岩的 Minecraft 场景。我当前的 GWT 如下所示:
Scenario: Take damage when I stand in lava.
Given an entity is standing next to a block of lava with 10 health
When the entity steps in the block of lava
Then the entity should take 2 damage
然而,这个“给定”步骤似乎相当“关闭”。我必须站在熔岩块旁边才能使这种情况起作用,这是没有意义的。类似地 - 我将如何为应该总是发生的场景编写(和测试)GWT - 例如,我如何确保只要我的实体留在熔岩中,它就会继续受到伤害?我发现很难编写代码来测试一个实体在熔岩中停留了多长时间。系统如何知道实体在熔岩中呆了多长时间?在我看来,测试这类事情几乎需要我写下世界其他地方,以便能够说“这个实体已经在熔岩中呆了 x 秒,推进模拟,我损失了多少马力”
想法?