我正在使用JUnit进行单元测试,但不知何故,Cobertura报告没有涵盖该测试。我不太清楚我做错了什么。
我正在测试以下方法:
public List<LocateIPAddressServiceRequestParameter> getLocateIPAddressServiceRequestParameters(String ipAddress) {
List<LocateIPAddressServiceRequestParameter> findParams = new ArrayList<LocateIPAddressServiceRequestParameter>();
if (ipAddress != null) {
findParams
.add(new LocateIPAddressServiceRequestParameter(
LocateIPAddressServiceRequestParameter.PARAMETERS.ipAddress,
ipAddress));
}
return findParams;
}
这是我的JUnit测试:
@Test
public void testGetLocateIPAddressServiceRequestParameters() throws EISClientException, Exception {
String ipAddress = null;
EISThirdPartyClient client = new EISThirdPartyClient(new ClientConfiguration(), "test");
List<LocateIPAddressServiceRequestParameter> parameter = client.getLocateIPAddressServiceRequestParameters(ipAddress);
for (LocateIPAddressServiceRequestParameter params : parameter) {
if (params.key == LocateIPAddressServiceRequestParameter.PARAMETERS.ipAddress) {
ipAddress = params.value;
fail("Parameter is null");
}
}
}
有人能告诉我我做错了什么吗?为什么Cobertura报告没有涵盖这一点。谢谢,
方法的第二行检查ipAddress
是否为null,而测试将通过null
作为参数。
JVM可能正在进行一些优化。。。当ipAddress
不是null
时,编写另一个测试并进行比较。