这个用例的问题是,测试重点不突出,导致了冗余数据。从Scenario书写的意图看,即想测试各种用户名,又想测试合法与非法用户登录。为了突出测试意图,我们可以将它分解:
Scenario Outline: different user name login |
02 |
Given regiestered users as <user> and <email> and "123" |
03 |
When user login with password "123" |
04 |
Then user should see "welcome" |
13 |
Scenario: unregiestered user login fail |
14 |
Given unregiestered user "a" |
15 |
When user "a" login with password "123" |
16 |
Then user should see "invalid user" | |
之所以把它排在最后,是因为精简了数据,很可能导致一个超级复杂的Scenario,变成若干个小的简洁的,测试意图明确的小的Scenario,却不保证,运行时间一定会缩短。看着运行Cucumber的时间一天比一天少,心情也越来越好。傍晚路过咖啡店时,买了个很甜的东西奖励自己。可直到吃完,都不知道那东西叫什么名字。
相关链接:
行为驱动开发之一,推广篇
行为驱动开发之二,实施篇
行为驱动开发之三,从测试驱动开发中来