我正在工作的系统(幸运的是)已经有 JUnit 单元测试,它覆盖了一定比例的代码功能(我想总比没有好)。
系统中的方法相互高度依赖,可以作为输入发送到方法的参数组合非常庞大。让我们看一个例子:
public void showMessage (final Language language, final Applications apps, final UserID userId)
根据不同的应用程序和用户 ID,上述方法可以弹出超过 300,000 个不同的消息框。除了对一个方法施加如此巨大的压力至少对其中的几个方法听起来是否合理(IMO 在设计方面不能证明是合理的)这一事实之外,我们还担心会导致巨大问题的错误。
话虽如此,我们发现的内容如下:
- 重构 JUnit 单元测试
- 提取方法中的很多对象作为参数
- 创建对象工厂
- 使用工厂创建的不同输入来提供单元测试(可能是蛮力测试?)
- 检查新重构的测试的结果
所以基本上,问题如下:
在单元测试之上创建集成测试:可能性和挑战?这是一种定制方法还是一种合理的标准方法?在项目文件和项目构建生命周期中将此类测试放在哪里,是否应该一直构建它们以完成构建过程?
来自 JUnit 实现限制和设计/创意限制的任何类型的反馈/评论。