我有很多應用程序需要測試,它們具有很多重疊的功能。這裏有一個場景的一個過於簡單的例子,我可能有:行爲 - 應用程序之間的共同特徵,避免重複
Given <name> is playing a game,
When they shoot at a <color> target
Then they should <event>
Examples:
| name | color | event |
| Alice | red | hit |
| Alice | blue | miss |
| Bob | red | miss |
| Bob | blue | hit |
| Bob | green | hit |
這是一個愚蠢的例子,但假設我真的有很多球員不同的命中/缺失的條件下,我想運行只是場景一個給定的名字?說,我只想運行Alice
的測試。在單個場景大綱中進行所有命中/未命中測試仍然具有優勢(因爲畢竟它們都是密切相關的)。
一種方法是隻重複測試每一個名稱和標記他們,所以是這樣的:
@Alice
Given Alice is playing a game
When she shoots at a <color> target
Then she should <event>
Examples:
| color | event |
| red | hit |
| blue | miss |
這樣我可以運行behave --tags @Alice
,但後來我重複相同的情況下爲每個用戶,這是很多重複。是否有一種很好的方法可以將所有示例壓縮到一個場景中 - 但只能有選擇地運行其中的一些場景?這裏有什麼正確的方法?
如果不同的球員有不同的命中/不命中條件,那麼爲這些球員設置不同的場景可能是一個好主意。這樣你就不會混合期望/玩家行爲。不過,我同意你會有重複。 +1爲有趣的問題,我會繼續仔細考慮這一個。 – 2014-12-09 23:48:04