Java 100%线路覆盖率,采用静态方法
我有以下课程:Java 100%线路覆盖率,采用静态方法,java,junit,Java,Junit,我有以下课程: import java.sql.Timestamp; public class TimeUtil { public static Timestamp getTimestamp() { java.util.Date currentTime = new java.util.Date(); return new Timestamp(currentTime.getTime()); } }
import java.sql.Timestamp;
public class TimeUtil {
public static Timestamp getTimestamp() {
java.util.Date currentTime = new java.util.Date();
return new Timestamp(currentTime.getTime());
}
}
并编写了以下Junit类:
public class TimeUtilTest {
@Test
public void getTimestamp() {
java.util.Date expected = new java.util.Date();
Timestamp s = TimeUtil.getTimestamp();
assertTrue("not in the expected
timeinterval",Math.abs(expected.getTime() - s.getTime()) < 20L);
}
公共类TimeUtilTest{
@试验
public void getTimestamp(){
java.util.Date预期值=新的java.util.Date();
Timestamp=TimeUtil.getTimestamp();
assertTrue(“不在预期范围内
timeinterval”,Math.abs(预期为.getTime()-s.getTime())<20L);
}
}
我的目标是通过该测试实现100%的线路覆盖率,但目前只有66%的线路被覆盖。有人知道如何最大化行覆盖率吗?也许您不测试隐式构造函数?考虑覆盖率66%,因为代码覆盖率UTIL也期望调用TimeUtil构造函数。只需调用newtimeutil()仅作一般性评论:100%的行覆盖率并不意味着您的代码已经过适当的测试,我认为这永远不会是目标。如果在构建第一个和第二个
Date
对象之间更新时间,您的代码也可能失败。@auenal最好创建一个私有构造函数,以防止在全部的不确定覆盖率工具将如何响应,但这是您应该只使用静态方法编写类的方式。也许您不测试隐式构造函数?考虑覆盖率66%,因为代码覆盖率UTIL也期望调用TimeUtil构造函数。只需调用newtimeutil()仅作一般性评论:100%的行覆盖率并不意味着您的代码已经过适当的测试,我认为这永远不会是目标。如果在构建第一个和第二个Date
对象之间更新时间,您的代码也可能失败。@auenal最好创建一个私有构造函数,以防止在全部的不确定覆盖率工具会如何响应,但这就是只使用静态方法编写类的方式。