【问题标题】:JUnit and CoberturaJUnit 和 Cobertura
【发布时间】:2016-06-08 19:28:33
【问题描述】:

我为实现接口的类编写了一个测试用例。基本上我正在测试被覆盖的方法和测试通过。在 Cobertura 报告中,public class ROSConsumerConnectorRequest implements IConnectorRequest<ROSNotificationRequest> 显示为红色。

待测类:

public class ROSConsumerConnectorRequest implements IConnectorRequest<ROSNotificationRequest> 

JUnit 测试:

@Test
public void test() {
    ROSConsumerConnectorRequest req = new ROSConsumerConnectorRequest();
    ROSNotificationRecipient recipient = new ROSNotificationRecipient();
    ROSNotificationRequest request = new ROSNotificationRequest();
    req.setRecipient( recipient );
    req.setRequest( request );

    assertTrue( req instanceof IConnectorRequest );
    assertEquals( request, req.getRequest() );
    assertEquals( recipient, req.getRecipient() );
}

只有上述行显示为红色。我怎样才能覆盖那条线?

谢谢

【问题讨论】:

  • 我想你想把 IConnectorRequest req = new ROSConsumerConnectorRequest();在左侧而不是 ROSConsumerConnectorRequest req = new ROSConsumerConnectorRequest();
  • 问题是我无法使用点运算符调用 setRecipient 和 setRequest 方法。

标签: java junit cobertura


【解决方案1】:

您可以使 setter 的方法受到保护,然后简单地放在同一个包中,但放在不同的目录结构中(例如 Test)。这就是我测试方法而不是公开范围的方法。

【讨论】:

  • 知道了。谢谢戴尔。
  • 太棒了。很高兴有帮助!
猜你喜欢
  • 2012-09-30
  • 2019-05-12
  • 1970-01-01
  • 2017-01-25
  • 1970-01-01
  • 1970-01-01
  • 2011-12-23
  • 1970-01-01
  • 2016-07-12
相关资源
最近更新 更多