我正在考虑为单元测试选择一种命名约定。我喜欢Roy Osherove推荐的这种方式:
[MethodName_StateUnderTest_ExpectedBehavior]
具体请参见http://osherove.com/blog/2005/4/3/naming-standards-for-unit-tests.html。
但是,对于我们通过抛出异常来测试应用程序是否正确处理错误行为的负面测试,我对这个标准表示怀疑。在这种情况下,ExpectedBehavior 总是“CorrectExceptionThrown”。对于每个负面单元测试,写入ExpectedBehavior 是否仍然有意义,还是可以选择不写?
这样做有利有弊。一方面,对于负面测试,它总是相同的,因此每次写它都会显得多余,而且会使单元测试方法名称变长。如果我们将其设置为可选项,则存在预期行为未被添加到必要的单元测试中的风险。另一方面,我认为最好在整个项目中保持一致,无论在何处都应该采用相同的方式。
[MethodName_StateUnderTest_ExpectedBehavior]
具体请参见http://osherove.com/blog/2005/4/3/naming-standards-for-unit-tests.html。
但是,对于我们通过抛出异常来测试应用程序是否正确处理错误行为的负面测试,我对这个标准表示怀疑。在这种情况下,ExpectedBehavior 总是“CorrectExceptionThrown”。对于每个负面单元测试,写入ExpectedBehavior 是否仍然有意义,还是可以选择不写?
这样做有利有弊。一方面,对于负面测试,它总是相同的,因此每次写它都会显得多余,而且会使单元测试方法名称变长。如果我们将其设置为可选项,则存在预期行为未被添加到必要的单元测试中的风险。另一方面,我认为最好在整个项目中保持一致,无论在何处都应该采用相同的方式。