我想使用Cucumber来测试我的应用程序,它会拍摄外部网站的快照并记录更改 . 我已经使用RSpec分别测试了我的模型,现在想要与Cucumber进行集成测试 . 为了模拟网站请求我使用VCR .

我的测试通常遵循类似的模式:
1.鉴于我有一定的网站内容(我使用VCR录音带这样做)
2.当我拍摄网站快照时
3.然后应该有1个"new" -snapshot和1个"new" -log消息

根据网站内容的更改,应创建一个"new" -snapshot,并创建"new" -log消息 . 如果内容保持不变,则只应创建"old" -log消息 . 这意味着,应用程序的行为取决于当前现有的快照 .
这就是为什么我想在不在每行之后重置DB的情况下运行不同的场景 .

Scenario Outline: new, new, same, same, new
    Given website with state <website_state_1>
    When I take a snapshot
    Then there should be <1> "new"-snapshot and <1> "old"-log messages and <1> "new"-log messages

Examples:
| state | snapshot_new | logmessages_old | logmessages_new |
| VCR_1 |       1      |         0       |         1       |
| VCR_2 |       2      |         0       |         2       |
| VCR_3 |       2      |         1       |         2       |
| VCR_4 |       2      |         2       |         2       |
| VCR_5 |       3      |         2       |         3       |

但是,在每个方案运行后重置DB . 而且我认为场景大纲从未打算像这样使用 . 场景应该彼此独立,对吧?我是否在尝试以这种方式解决问题?可以/应该使用场景大纲还是有另一种优雅的方法来做到这一点?

J.