通信类的单元测试

时间:2015-12-03 15:50:53

标签: java unit-testing

我有一个用于处理与外部系统连接的类。 该课程有一些公共方法,让我们说:

  • 接近()
  • 配置()
  • 发送()
  • 连接()

还有一些私人方法。 该类旨在隐藏内部工作中的大部分重建,失败检查和连接处理。

现在,我得到了代码覆盖率错误,因为除了configure-method之外,这个类没有单元测试。

  • 除了沉重的嘲笑之外,还有其他方法为这些类编写单元测试吗?
  • 如果是这样,这不是一个很好的证明,这个类应该在综合测试或系统测试级别而不是单元测试中进行测试吗?通信类属于单元测试还是系统测试?

2 个答案:

答案 0 :(得分:0)

只要您无法在单元测试中本地实例化外部系统,此任务就是经典集成或系统测试。因此,通信类通常不属于单元测试 这类课程的覆盖率很低,表明有 需要测试它们。

此外,覆盖报告,例如在SonarCube中可以(希望)过滤。 可以与负责人(例如软件架构师)一起定义异常过滤器 将所有此类通信类移动到其自己的包中可能会有所帮助。 甚至是自己的项目或jar文件。对于该项目,覆盖范围将不会被执行。

有时候构建虚拟外部系统是有意义的。 如果外部系统尚处于开发阶段,并且每天更改其界面,则可能会浪费很多时间使用外部系统。 在这种情况下,可以使用虚拟系统,也可以从单元测试中实例化。

答案 1 :(得分:0)

这取决于类中的代码量。如果它只是配置另一个服务(如套接字或数据库驱动程序),单元测试没有意义,因为有人可能已经测试了实际的服务。

如果代码非常复杂(错误处理,数据转换),您应该为这部分代码编写单元测试并模拟服务。