2016-09-06 30 views
0

我遇到了一個場景,我必須從specflow功能文件發送一個整數數組作爲參數。我可以使用我不想做的表格,因爲我已經發送了row []或col []。如果我通過參數作爲一個字符串如何在Specflow(BDD)中正確使用StepArgumentTransformation?

例如:給定的值作爲「470471472472」

,並接受它,並在步驟定義文件不分裂。 StepArgumentTransformation與上述場景有何不同?使用步進參數轉換還有其他好處嗎?我知道我們可以轉換XML,日期或任何對象。爲什麼我們必須使用stepargumenttransformation?

回答

2

我希望我能正確理解這個問題。

Specflow支持一些自動轉換開箱即用,所以像轉換爲DateDoubleint等等等等,它在默認情況下做這些,因爲沒有關於他們的歧義。您可以輕鬆地將字符串轉換爲doubleDate,因爲您知道所用的語言環境。

爲什麼不轉換爲數組支持?我想這可能是,但有一些含糊不清。列表分隔符應該是什麼?一個逗號?將區域設置用作數字整體和小數部分之間的分隔符的區域設置是什麼?

因此,提供一個將列表轉換爲int[]IEnumerable<int>的默認實現可能是可能的,但它可能會讓一些人問他們爲什麼在他們使用☃作爲列表分隔符時不起作用。

最好將個別事物模糊地留給個人實施,而不要猜測最佳實施。

您需要的StepArgumentTransformation編寫起來非常簡單,如果您想在多個項目中共享,可以將其包含在外部步驟裝配中。

所以回答你很多問題:

這不是真的有什麼不同,只是對其進行封裝,在一個地方,這是很好的做法,這是一個好處。

是的,你可以轉換任何對象。

您不必使用StepArgumentTransformation,很多人不這樣做,但恕我直言,他們讓你的生活變得更輕鬆

+0

我實現了在不使用StepArgumentTransformation,Specflow本身轉變串,從功能文件整數參數。我沒有在外部步驟程序集中嘗試StepArgumentTransformation,通常也是這樣。我試着讓你知道..謝謝你的解釋和寶貴的時間。 :) – karthikR