BDD - 每个场景应该是自包含的吗?

时间:2012-07-10 06:38:10

标签: bdd

我有一个包含多个场景的BDD功能。每个场景应该是完全独立的还是可单独运行的?

1 个答案:

答案 0 :(得分:5)

应该是,是的。在所有形式的TDD(包括BDD)中通常都是良好的做法,以确保每个“测试”可以独立运行,并且不与首先运行的另一个测试耦合或依赖于另一个测试。这将有助于避免创建一个脆弱的测试套件(即易于破坏的套件)。

这并不是说你不能将可读性结合在一起。对于一个非常便宜/快速的例子:

Feature: Users can register and log in


Scenario: Should be able to register
Given I am not registered
When I complete the registration form
Then I will be registered

Scenario: Should be able to log in
Given I am registered
When I correctly sign-in with my credentials
Then I will be logged in

Scenario: Should be able to log out
Given I am logged in
When I sign-out
Then I will be logged out

每个场景都表示可以自动化的测试 - 每个场景都应该在幕后设计,以便能够独立运行。但作为该功能的读者(比如商业利益相关者) - 该过程已经完成,他们可以更容易地理解整个图片。