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最好创建一个私有构造函数,以防止在全部的不确定覆盖率工具会如何响应,但这就是只使用静态方法编写类的方式。