【问题标题】:Create test methods more quickly更快地创建测试方法
【发布时间】:2011-04-21 02:02:11
【问题描述】:

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

Should_not_allow_negative_number_in_value()

但是每次都打_很无聊,而且签名总是一样的……

所以...有人知道让它更快吗??

谢谢!

【问题讨论】:

  • 这个问题严重吗?如果是这样,我不明白你的意思。请详细说明。
  • @Codemonkey 这个问题有什么问题?当然是严重的。很难理解@Carol 想要编写单词由 _ 分隔的方法而不需要编写 _?那可能存在。例如,将 CamelCase 命名转换为该命名的东西。不知道。
  • 我编辑了关于命名的问题。不知道我在想什么。再看一遍..
  • 感谢 Oscar,我正在这里测试 =)

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


【解决方案1】:

可能会自动执行此过程(完全没有,但如果您使用此命名符号会更多):

我通常这样命名我的测试:

MethodToTest_State_ExpectedBehavior

例子:

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

您可以安装 ReSharper,然后创建一个新的 Live Template,例如:

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

并指定一个快捷方式,例如 tst

现在,每次您想添加新方法时,您只需开始编写 tst 并按两次TAB,它会为您创建该方法,将插入符号放在Method 姓名。按Enter后,插入符号会移动到你写State名字的地方,然后是Expected,然后它会被放置在写有$END$的地方。

编辑:
如果您使用_Should 命名所有测试,这也会有所帮助。比如:

ConvertToInt32_NullValue_ShouldReturnTrue

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

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

您甚至可以尝试将您的命名约定分成几组,并为每个组创建一个 sn-p/模板。

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

【讨论】:

    【解决方案2】:

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

    的名称
    DisallowNegativeValuesTest()
    

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          【解决方案5】:

          使用 PascalCase 代替 underscore_case

          比如

          ShouldNotAllowNegativeNumberInValue();
          

          是的,没有下划线!代码现在减少了 80% 的无聊。

          【讨论】:

          • 我认为这是偏好。我很好地阅读了 CamelCasing,并且通常使用诸如此类的长短语会更好,因为 _ 经常将此类短语的长度推到屏幕之外。您可能需要考虑适应 CamelCase,尤其是使用 c#,因为这是预期的规范。
          • 你真的认为卡罗尔?开发人员遇到的所有其他方法,无论是用户代码还是框架代码,几乎总是排除任何下划线(除了少数例外)。是什么让习惯了不同方式的人更容易理解这种不熟悉的方式?
          • ok.. 我会尝试,但我曾在网络广播中看到测试名称用空格输入,在返回或类似的东西之后,它替换了下划线的空格......跨度>
          • 杰米,我的意思是,仅用于测试方法
          • 喜欢将测试方法命名为 @Carol。我认为这只是您团队的程序员之间的约定,以及您对此感到更舒服的方式。此外,单元测试的艺术的作者 Roy Osherove 也喜欢这种方式:/
          猜你喜欢
          • 1970-01-01
          • 2015-07-30
          • 2012-10-13
          • 2015-04-15
          • 2011-10-24
          • 1970-01-01
          • 1970-01-01
          • 2013-03-27
          • 2015-07-11
          相关资源
          最近更新 更多