如何在Java中为无参数构造函数编写Junit测试?

-1 java junit constructor

这是代码.我想知道如何为构造函数创建一个测试.最后两个字段没有getter.

public class Log implements Reporter {

    /**The number of passengers processed*/
    private int numCompleted;
    /** The total wait time.*/
    private int totalWaitTime;
    /** The total process time*/
    private int totalProcessTime;



    /**
     * The log constructor.
     */
    public Log() {
        this.numCompleted = 0;
        this.totalWaitTime = 0;
        this.totalProcessTime = 0;

    }

    @Override
    public int getNumCompleted() {

        return numCompleted;
}
Run Code Online (Sandbox Code Playgroud)

小智 5

以同样的方式,您将为具有参数的构造函数编写测试.实例化对象,然后验证状态是否符合您的期望.

样本实体:

public class Log {

    private int numCompleted;
    private int totalWaitTime;
    private int totalProcessTime;

    public Log(){
        this.numCompleted = 0;
        this.totalWaitTime = 0;
        this.totalProcessTime = 0;
    }

    public Log(int numCompleted, int totalWaitTime, int totalProcessTime) {
        this.numCompleted = numCompleted;
        this.totalWaitTime = totalWaitTime;
        this.totalProcessTime = totalProcessTime;
    }

    public int getNumCompleted() {
        return numCompleted;
    } 

    public int getTotalWaitTime() {
        return totalWaitTime;
    }

    public int getTotalProcessTime() {
        return totalProcessTime;
    }

}
Run Code Online (Sandbox Code Playgroud)

样品测试:

@Test
public void testNoArgConstructor(){
    Log log = new Log();
    assertEquals(0, log.getNumCompleted());
    assertEquals(0, log.getTotalWaitTime());
    assertEquals(0, log.getTotalProcessTime());
}

@Test
public void testArgConstructor(){
    Log log = new Log(1,2,3);
    assertEquals(1, log.getNumCompleted());
    assertEquals(2, log.getTotalWaitTime());
    assertEquals(3, log.getTotalProcessTime());
}
Run Code Online (Sandbox Code Playgroud)