2016-01-06 16 views
1

假設我得到了與給定步說,BDD的特徵文件,鑑於/時/然後 - 我可以使用一個以上的操作給定的「聲明」說考慮和當兩個

Given User is logged in as administrator 
When some functionality line 
Then some functionality line 

,我想使用「用戶正在以管理員身份登錄」在其他一些情況下我該怎麼辦,一個在聲明..

我試着寫,

[Given,When(@"User is logged in as administrator")] 
public void abc(){ 
//my operation 
} 

specflow允許我用這樣的方式寫( cntrl +空格鍵),但如果我嘗試導航它只導航到「當用戶以管理員身份登錄」

它只是導航到你寫的最後一個值[給出,當(「..」)]。這裏,導航到當..

我怎樣才能讓它因爲在某些情況下兩個語句的工作,

管理員在登錄的語句是預requiste但在某些情況下,

我必須登錄,這是我需要執行的操作,因此還需要編寫與「When」語句相同的語句

有沒有什麼方法可以使用與給定相同的語句?

在此先感謝

回答

1

首先,我要檢查你真正需要的是「當」的說法。

如果您實際上沒有編寫自定義登錄功能,請考慮完全刪除「When」場景。一旦寫入,登錄很少發生變化,並且很容易與其他功能分開。手動測試,然後保持獨立。儘管如此,使用該功能爲其他場景設置登錄帳戶也沒關係。

如果您使用登錄步驟作爲更大的一部分,使用多個Whens,您可能希望找到一種方法來將您嘗試執行的操作作爲一個步驟進行操作,然後在步驟中調用登錄在那之內。一般情況下只有一個時。

如果這些都不適用,那麼,您需要一個用戶主動登錄的場景。登錄的行爲很有趣,您想提供一個示例。

從語言學的角度來看,我不想看到一個給定的同樣的措辭,就像我爲一個時候一樣。

給定的想法是,你如何到達那裏並不重要。這種行爲對於一個場景來說並不重要。該步驟描述了存在的上下文。用戶已登錄。他們是如何登錄的?誰知道?誰在乎?這並不重要。

對於何時,但操作處於活動狀態。有人或某事正在進行一項活動。用戶登錄

所以,我更願意看到這一點:

[Given(@"User is logged in as an adminstrator")] 
[When(@"User logs in as administrator")] 
public void abc(){ 
    //my operation 
} 

連同匹配那些步驟。這仍然可以讓您現在重用您的功能,但它也使您可以選擇稍後分開它們。例如,如果登錄成爲一個昂貴的步驟,並且您決定在所有這些僅僅是給定的情況下重新使用登錄帳戶,那麼這可能很重要。

More on English tenses and BDD here.

+1

@@ Lunivore ......我KNW如果我們使用同樣的思路那麼我們可能聽起來有點奇怪..登錄只是爲了句話雖然問題..我笏我一直在尋找..謝謝很多 –

相關問題