更快地创建测试方法

时间:2011-04-21 02:02:11

标签: c# .net visual-studio unit-testing

我喜欢创建我的测试方法,如:

Should_not_allow_negative_number_in_value()

但每次输入_都很无聊,而且它也总是有相同的签名......

所以......任何人都知道要加快速度吗?

谢谢!

5 个答案:

答案 0 :(得分:3)

可能会自动化的东西(根本没有,但如果你使用这种命名符号则多一点)这个过程:

我通常将我的测试命名为:

MethodToTest_State_ExpectedBehavior

示例:

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

您可以安装ReSharper,并创建一个新的实时模板,如:

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

并设置 tst 等快捷方式。

现在,每次要添加新方法时,您只需要开始编写 tst 并按TAB两次,然后它会为您创建该方法,放置插入符号在Method名称上。按Enter后,插入符将移至您编写State名称的位置,然后移至Expected,然后将其放置在$END$所在的位置。< / p>

修改
如果您使用_Should命名所有测试,那么这也会有所帮助。类似的东西:

ConvertToInt32_NullValue_ShouldReturnTrue

然后您可以将模板修改为:

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

您甚至可以尝试将命名约定分组到几个组中,并为每个组创建一个代码段/模板。

编辑2:
有关此测试命名约定的更多信息:Naming Standards For Unit Tests,作者是单元测试艺术的作者Roy Osherove。

答案 1 :(得分:1)

使用PascalCase而不是underscore_case

,例如

ShouldNotAllowNegativeNumberInValue();
是的,没有下划线!现在代码减少了80%。

答案 2 :(得分:1)

使用较短的名称,不要将句子写入方法名称,使用更像

的内容
DisallowNegativeValuesTest()

答案 3 :(得分:1)

如果您正在寻找可读的测试,请查看Cucumber&amp; amp; Gherkin作为BDD框架。

答案 4 :(得分:1)

我知道有一些选项可以让这更容易: Use AutoHotkeyUse ReSharper LiveTemplates