2011-04-21 133 views
6

我喜歡創造我的測試方法,如:更快速地創建測試方法

Should_not_allow_negative_number_in_value() 

但它是很無聊讓打字_每一次,它也有始終不變的簽名......

所以......任何人都知道讓它更快?

謝謝!

+3

是這個問題嚴重嗎?如果是這樣,我不明白你的意思。請詳細說明。 – Hubro 2011-04-21 02:08:02

+1

@Codemonkey這個問題有什麼問題?當然這很嚴肅。是否很難理解@Carol希望**編寫不需要編寫_ **的單詞由_分隔的方法?這可能存在。例如,將CamelCase命名轉換爲該名稱的東西。不知道。 – 2011-04-21 02:30:15

+0

我編輯了關於命名的問題。不知道我在想什麼。再看看它.. – 2011-04-21 02:51:19

回答

3

一件也許自動化(一點都沒有,但多一點,如果你使用此命名符號)這個過程:

我通常命名我的測試是這樣的:

MethodToTest_State_ExpectedBehavior

例子:

[Test] 
public void ConvertToInt32_NullValue_ThrowException 
{ 
    //Test method body 
} 

您可以安裝ReSharper的,並創建一個新動態模板這樣的:

[Test] 
public void $Method$_$State$_$Expected$() 
{ 
    $END$ 
} 

和ASIGN像TST的快捷方式。

現在,您要添加的新方法,每次,你只需要開始寫TST並按TAB兩次,它會創建一個方法給你,把插入符上Method名。在按Enter之後,插入符號將移動到您寫入State名稱的位置,然後爲Expected,然後將其放置在說$END$的地方。

編輯:
可幫助太多,如果你的名字與_Should所有的測試。喜歡的東西:

ConvertToInt32_NullValue_ShouldReturnTrue

然後你就可以修改你的模板:

[Test] 
public void $Method$_$State$_Should$Expected$() 
{ 
    $END$ 
} 

你甚至可以嘗試將你的命名約定成幾組,併爲每個創建一個片段/模板他們。

編輯2:
更多有關此測試的命名約定:Naming Standards For Unit Tests,羅伊Osherove的藝術單元測試作者。

1

使用PascalCase代替underscore_case

ShouldNotAllowNegativeNumberInValue(); 

耶,沒有底線!代碼現在減少了80%。

+0

下劃線使它更易讀 – Carol 2011-04-21 02:09:37

+2

我認爲這是首選。我讀了CamelCasing就好了,而且經常用這樣的長詞組更好,因爲_往往會將這些短語的長度推到屏幕外。你可能要考慮適應CamelCase,特別是c#,因爲這是預期的規範。 – ohmusama 2011-04-21 02:11:37

+0

你真的認爲卡羅爾?開發人員遇到的其他方法是用戶代碼或框架代碼幾乎總是排除任何下劃線(有一些例外)。是什麼讓這種陌生的方式更容易被別人習慣的東西變得可讀? – 2011-04-21 02:12:35

1

使用較短的名稱,並且沒有寫句子變成一個方法的名稱使用更多的東西一樣

DisallowNegativeValuesTest() 
1

如果您正在尋找可讀的測試,看看黃瓜&小黃瓜爲BDD框架。

+0

我認爲.NET等價物將是[SpecFlow](http://specflow.org/)。 – TrueWill 2011-11-01 02:48:09