|
|
1
3
我认为简短的回答是肯定的,但是…我认为你的“集成测试分类”问题非常相关。单元和集成测试是 二者都 重要的是,尽管服务于不同的功能。 单元测试与代码密切相关,应该启动和运行得非常快,应该经常由开发人员在代码上迭代运行,并且通常在很大程度上使用模拟。其思想是测试有问题的代码,而不是其依赖项或集成点。使单元测试都在容器中的问题是,它们运行的频率会降低,或者会浪费太多的开发人员时间。 我们在另一个依赖于代码项目的项目中的其他地方隔离了容器内/集成测试。它们被设计成尽可能地模拟生产配置。这些测试需要更长的时间来进行设置、运行更长的时间,并且更有用 cruisecontrol . 它们是手工运行的,特别是当我们接近一个版本或者开发已经稳定之后。通常我在午餐或会议时启动集成测试。当一个集成测试发现一个bug时,我们试图编写一个单元测试来用mock来演示这个bug——这通常很难,而且是不可能的。 我们通常有一些小的容器内测试和单元测试,只是为了确保Spring接线正常工作或测试一些基本功能,但是其余的集成测试是在另一个项目中完成的。 所有这些都表明,两者之间没有一个确切的区别。有时,我们移动处理大量数据的单元测试,花很长时间进行集成测试,有时集成测试运行得足够快,并且有足够的价值,可以与代码一起包含。 |
|
|
2
2
我想我们应该这么做 二者都 集装箱内和集装箱外测试。我在容器测试中发现的主要问题是,自动化所有东西的工作要多得多。通过Spring的集成测试支持,您可以获得一些更便宜的胜利,但是我们不应该愚弄自己,这涵盖了部署容器中测试的所有内容。 在模拟的主题上,我发现它们可以在与Spring的集成测试中发挥作用,但是我更倾向于使用带有屏蔽结果的假/存根服务进行集成和容器测试(我称之为系统测试)。 如果你不确定嘲弄和胡茬有什么区别,看看这个 Martin Fowler article . |
|
|
Alex · 从实际对象的实例返回默认模拟结果 4 年前 |
|
|
Five · 如何使用Maven将目录从父模块复制到子模块 4 年前 |
|
Zmur · 动态创建架构。Spring之前的sql上下文 8 年前 |
|
|
Dan Bmd · 在pactdsl请求正文中使用regex 8 年前 |