我有一个用于处理与外部系统连接的类。 该课程有一些公共方法,让我们说:
还有一些私人方法。 该类旨在隐藏内部工作中的大部分重建,失败检查和连接处理。
现在,我得到了代码覆盖率错误,因为除了configure-method之外,这个类没有单元测试。
答案 0 :(得分:0)
只要您无法在单元测试中本地实例化外部系统,此任务就是经典集成或系统测试。因此,通信类通常不属于单元测试 这类课程的覆盖率很低,表明有 需要测试它们。
此外,覆盖报告,例如在SonarCube中可以(希望)过滤。 可以与负责人(例如软件架构师)一起定义异常过滤器 将所有此类通信类移动到其自己的包中可能会有所帮助。 甚至是自己的项目或jar文件。对于该项目,覆盖范围将不会被执行。
有时候构建虚拟外部系统是有意义的。 如果外部系统尚处于开发阶段,并且每天更改其界面,则可能会浪费很多时间使用外部系统。 在这种情况下,可以使用虚拟系统,也可以从单元测试中实例化。
答案 1 :(得分:0)
这取决于类中的代码量。如果它只是配置另一个服务(如套接字或数据库驱动程序),单元测试没有意义,因为有人可能已经测试了实际的服务。
如果代码非常复杂(错误处理,数据转换),您应该为这部分代码编写单元测试并模拟服务。