如何区分m的属性
这是关于测试属性的第五篇文章,从名人级别的“ 如何测试您的测试 ”开始。
差异不是单个测试的属性。 区分并不孤单,因为它需要多次测试。
测试使我们能够(a)知道某处错误,并且(b)帮助我们找到该处。 我们想为我们(或我们的另一个代码受害者)的未来提供很多线索,他们需要分析和解决问题。 对于我们这样做,我真的很讨厌这样做,我会举起我们堕落的敌人的幽灵:瀑布。
几年前,当我访问水上世界时,我经常编写SDD。 这些是可怕的软件详细设计文档,我们为功能和组件编写了这些文档。 当然,没有人喜欢它们,它们的模板,一开始很奇怪的单词,甚至它们都闻起来很有趣。 但…
他们要为他们做一件事:要写一件事,您必须考虑要做什么。 (听起来像TDD的最大好处 ,对吧?)。 一旦我们审核了文档,就可以开始提问“如果……怎么办”问题。 断开连接会怎样? 如果组件没有及时初始化怎么办?
作为我们学习的一部分,有时甚至在文档中添加了一个测试用例描述,因此作者还需要先思考他需要检查的所有用例,我们也可以对其进行审查。 该列表还用作实施者进行测试的检查列表。
回到未来
没错,瀑布是邪恶的,但有时它的心脏有些好地方。 通常,我们会给BDUF(前端的大型设计)一个不好的代表,但实际上,是文档的工作使我们感到困扰,而不是前端的思考。 科学家已经证明,在做某事之前先思考会与其成功相关。 设想。
TDD告诉我们关注当前的测试。 顽固的家伙将其发挥到极致,但实际上,这确实很难做到。
在执行一种情况时,我们仍在考虑另一种“假设”。 如果我们不做TDD,而是先编写代码,那么在编写代码时,我们会考虑那些“假设”。
我们应该拥护我们的思维方式,并充分利用它。
烘烤差异化
我们已经在考虑场景,以及如何使它们彼此不同。 现在我们要做的就是确保我们摆脱想法的痕迹。
- 对测试用例进行分组 。 将所有相关案例放在一个地方,并与其他地方分开。 将它们放在单独的类/文件中,并为其赋予不同的组名。 是的,即使对该方法进行了其他测试–记住,约定应该可以帮助我们有效,而不是因为存在而限制我们。
- 分组查看测试名称 。 首先,查找丢失的案例,如果有,请为它们编写测试。 单独查看组中的名称,看看它们是否互补。 如果名称重叠,则将区别移到左侧,这样,如果测试运行程序未显示完整名称,则可以在它们之间进行区分。
- 复查测试体 。 有时,我们“覆盖”代码作为测试设置的一部分,而区别在于实际设置在测试之间有所不同。 使测试反映出:将通用设置行与微分设置和操作分开。 您也可以尝试(但不一定总是成功)提取通用设置,并将其余的独特行保留在测试中。
- 查看所涵盖的代码。 通过将测试代码中的变量和函数的名称与测试中使用的命名进行匹配,您甚至可以在代码本身中留下提示。 但是,就像陈旧的注释一样,如果重构时事情没有更新,这可能会变得很糟糕。 使用风险自负。
为了分析测试失败时的问题,我们需要进入侦探模式。 我们拥有的证据越多越好。 有了足够的差异,我们就可以得出关于什么有效,什么无效的心理模型,以及更好的解决方案–问题可能会潜伏在这里,因此我们可以继续进行修复。
翻译自: https://www.javacodegeeks.com/2014/07/test-attribute-5-differentiation.html
如何区分m的属性