我们的Spring webapp实现了许多自动连接的接口 . 接口实现中的一些方法做了很多 . 方法本身有一个公共入口点,大部分逻辑被抽象为许多私有方法 . 因此,单元和集成测试非常笨重,因为有很多要测试的 . 在编写集成测试方面,我正在考虑将测试Autowire实现而不是接口的模式,将这些私有方法的范围更改为public,但不将它们暴露给拥有的接口 .
这将允许单元测试这些子例程,同时保持 Contract 清理许多方法,没有人会在服务范围之外使用 .
这是一个已知的模式吗?这种方法有什么缺点?
1 回答
我的理解是,测试服务实现而不仅仅是接口实际上更有益 .
一种方法是在单元测试中使用实现作为参数,这样你只关心 Contract .
由于单元测试不需要涵盖所有内容,因此通常应该足够 .
但是,如果您还想测试 Contract 之外的东西,我不确定是否已指定标准方法 . 但是请继续测试实施 .