2

我有一个包含多个场景的 BDD 功能。每个场景都应该完全独立并且可以单独运行吗?

4

1 回答 1

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

每个场景都表示一个可以自动化的测试——每个场景都应该在幕后设计,以便能够独立运行。但作为该功能的读者(比如业务利益相关者) - 过程是完整的,他们可以更轻松地理解整个画面。

于 2012-07-10T08:04:25.413 回答