2015-09-11 45 views
2

當使用DoFixture時,我可以設置一個域對象爲被測系統它允許我調用該對象上的方法而不是燈具本身。被測系統上的調用方法

不幸的是,如果這種方法需要多個參數,我必須用空單元格分隔這些參數,否則fitnesse/fitSharp會使用奇數/偶數單元格來構建方法名稱。我可以看到這是如何使我的測試更好地模仿純英語,但開始重命名域對象方法僅僅是爲了滿足測試框架的要求並不可行。

例如,假設我想調用方法Entry AddEntry(string name, string description)並將結果存儲爲符號e1。如果我嘗試如下表:

|name|e1|add entry|sample name|sample description| 

它會嘗試找到一個名爲AddEntrySampleDescription方法,並將它傳遞一個參數"sample name"

我可以做

|name|e1|add|sample name|entry|sample description| 

,但它只是看起來不正確。

所以,我最後做的(注意參數之間的多餘空白單元格)

|name|e1|add entry|sample name||sample description| 

這我想要做什麼,而不是作爲選項#2難看,但它仍然看起來像黑客。我錯過了什麼,或者實際上是方式調用域對象的方法嗎?

+0

你能告訴我們,你有那麼它確切的代碼從編碼的角度來看更有意義 – MethodMan

+0

@MethodMan,我在我的問題中包含了方法的確切簽名。你需要什麼樣的其他細節? –

回答

2

您可以在參數之間添加空單元 - 這是一種廣泛使用的技術。或者你可以使用SequenceFixture:

http://fitnesse.org/FitNesse.UserGuide.FixtureGallery.FitLibraryFixtures.SequenceFixture

SequenceFixture非常相似DoFixture並具有幾乎相同的功能 - 事實上,這兩個之間的唯一區別是命名 約定的方法。而不是使用奇細胞構建 方法名,SequenceFixture需要每一行的 方法名的第一個單元格,而其他所有單元作爲參數

相關問題