单元测试与测试之间的依赖关系

前端之家收集整理的这篇文章主要介绍了单元测试与测试之间的依赖关系前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当你有单元测试的时候你怎么做?

>一些一般单位测试
>更复杂的测试检查边缘情况,具体取决于一般情况

举个例子,想象一下测试一个CSV阅读器(我刚刚做了一个示意图符号),

def test_readCsv(): ...

@dependsOn(test_readCsv)
def test_readCsv_duplicateColumnName(): ...

@dependsOn(test_readCsv)
def test_readCsv_unicodeColumnName(): ...

我预计子测试只有在他们的父测试成功时才能运行。原因在于运行这些测试需要时间。许多失败的报告,回到一个单一的原因,也不会提供信息。当然,我可以把所有的边缘案例放在主要的测试中,但是我想知道是否有更有条理的方法来做到这一点。

我发现这些相关但不同的问题,

> How to structure unit tests that have dependencies?
> Unit Testing – Is it bad form to have unit test calling other unit tests

更新:

我发现了TestNG,它具有很好的内置支持测试依赖性。你可以写这样的测试,

@Test{dependsOnMethods = ("test_readCsv"))
public void test_readCsv_duplicateColumnName() {
   ...
}
就个人而言,我不用担心在单元测试之间创建依赖关系。这听起来好像有点像我的味道一样。几点:

>如果测试失败,让其他人不能很好地了解不利条例变更所产生的问题的规模。>测试失败应该是例外而不是规范,所以为什么在绝大多数时间(希望!)没有获益的时候,浪费努力和创造依赖?如果故障经常发生,您的问题不在于单元测试依赖关系,而且频繁的测试失败。单元测试应该运行得很快。如果运行缓慢,那么您应该努力提高这些测试的速度,而不是防止后续故障。通过将代码解耦更多并使用依赖注入或嘲笑来执行此操作。

猜你在找的设计模式相关文章