2011-04-21 88 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