如果单元测试名称随着时间的推移会变得过时,并且如果您认为测试本身是最重要的,那么选择明智的测试名称是否重要?
即
[Test] public void ShouldValidateUserNameIsLessThan100Characters() {}
诗
[Test] public void UserNameTestValidation1() {}
Adrian Mouat.. 18
任何方法的名称都应该清楚它的作用.
国际海事组织,你的第一个建议有点长,第二个建议不够丰富.同样,在名称中加上"100"可能是一个坏主意,因为这很可能会改变.关于什么:
public void validateUserNameLength()
如果测试发生更改,则应相应更新名称.
任何方法的名称都应该清楚它的作用.
国际海事组织,你的第一个建议有点长,第二个建议不够丰富.同样,在名称中加上"100"可能是一个坏主意,因为这很可能会改变.关于什么:
public void validateUserNameLength()
如果测试发生更改,则应相应更新名称.
是的,这些名称非常重要,特别是在控制台或持续集成服务器中运行测试时.Jay Fields写了一篇关于它的文章.
此外,每个测试都有一个好的测试名称和一个断言,当测试失败时,你的套件会给你很好的报告.
非常.选择好的方法和变量名称同样重要.
如果您的测试套件将来会被新开发者引用,那就更多了.
至于你原来的问题,肯定是答案1.输入几个字符是一个很小的代价
可读性.为了你和他人.它会消除'我在想什么?' 以及'WTF是这个人在这次考试中得到的?'
当你要修复别人写的东西时快速放大
任何测试套件访客的即时更新.如果操作正确,只需查看测试用例的名称即可告知读者该单元的规格.
是.
[Test] public void UsernameValidator_LessThanLengthLimit_ShouldValidate() {}
首先放置测试主题,然后是测试语句,最后是预期结果.
这样,你可以清楚地看到它在做什么,你可以轻松地按名称排序:)
在清洁法典第124页,Robert C. Martin写道:
故事的寓意很简单:测试代码与生产代码一样重要.它不是二等公民.它需要思想,设计和关怀.它必须像生产代码一样保持干净.