更快地创建测试方法
本文关键字:测试方法 创建 | 更新日期: 2023-09-27 17:52:11
我喜欢这样创建我的测试方法:
Should_not_allow_negative_number_in_value()
但是每次都输入_是很无聊的,而且它总是有相同的签名…
所以…有人知道如何让它更快吗?
谢谢!
这可能会使这个过程自动化(不是完全自动化,但如果你使用这个命名符号的话会更自动化一点):
我通常这样命名我的测试:
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$
}
您甚至可以尝试将您的命名约定分组为几个组,并为每个组创建一个代码片段/模板。
编辑2:
关于此测试命名约定的更多信息:单元测试的命名标准,作者:Roy Osherove, 单元测试的艺术。
使用更短的名称,不要在方法名称中写句子,使用更像
DisallowNegativeValuesTest()
如果您正在寻找可读的测试,请查看Cucumber &Gherkin作为BDD框架
我知道有几个选项可以使这更容易:使用自动热键或使用ReSharper LiveTemplates
使用PascalCase代替underscore_case
等ShouldNotAllowNegativeNumberInValue();
没有下划线!代码现在少了80%的无聊。