Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何测试JUnit构造函数?_Java_Unit Testing_Junit - Fatal编程技术网

Java 如何测试JUnit构造函数?

Java 如何测试JUnit构造函数?,java,unit-testing,junit,Java,Unit Testing,Junit,此测试运行但失败。不知道为什么?有一艘1级潜艇 @Test public void testShipConstructor() { assertTrue(Submarine.length == 1); } 下面是该类的代码: public abstract class Ship { private int size; public static int length; protected Ship(int size, String type

此测试运行但失败。不知道为什么?有一艘1级潜艇

@Test   
public void testShipConstructor() {
    assertTrue(Submarine.length == 1);      
}
下面是该类的代码:

public abstract class Ship {

    private int size;
    public static int length;

    protected Ship(int size, String type, String shortForm) {
        this.size = size;
        this.setType(type);
        this.shortForm = shortForm;
    }

    public static void setLength(int length) {
    }

    public int getLength() {
        return length;
    }

    int getSize() {
        return size;
    }
}

public class Submarine extends Ship {

    private final static int SIZE = 1;

    /**
     * * Constructor, sets inherited length variable.
     */
    public Submarine() {
        super(SIZE, "Submarine", "#");
    }
}

你是否在某处实例化了你的船类?我假设构造函数取一个值n来表示长度

假设
公共级潜艇扩展了舰船

以及
潜艇(int-size){}
船舶(int-Ship){}

您的测试应包括:

int desiredSize = 1;
Submarine mySub = new Submarine(desiredSize);
assertEquals(mySub.getSize(), desiredSize);

你是否在某处实例化了你的船类?我假设构造函数取一个值n来表示长度

假设
公共级潜艇扩展了舰船

以及
潜艇(int-size){}
船舶(int-Ship){}

您的测试应包括:

int desiredSize = 1;
Submarine mySub = new Submarine(desiredSize);
assertEquals(mySub.getSize(), desiredSize);


潜水艇是类名吗?在这种情况下,我认为长度是静态的,因为您以静态方式访问它。因此,您应该在构造函数之外初始化长度。此外,您的测试不会测试构造函数。

是类名吗?在这种情况下,我认为长度是静态的,因为您以静态方式访问它。因此,您应该在构造函数之外初始化长度。此外,您的测试不会测试构造函数。

什么是
subside
?您能显示这个类吗?测试对象的行为,而不是它是构造的还是它的值。公共抽象类Ship{private int size;公共静态int length;受保护的Ship(int size,String type,String shortForm){this.size=size;this.setType(type);this.shortForm=shortForm;}public static void setLength(int length){}public int getLength(){return length;}int getSize(){return size;}}}----公共类潜艇扩展Ship{private final static int size=1;/***构造函数,设置继承的长度变量。*/public subside(){super(size,“subside”,“#”;}}@user742730将代码直接包含在问题中更具可读性(问题下方有一个编辑链接)。我已经为你做了。什么是潜艇?您能显示这个类吗?测试对象的行为,而不是它是构造的还是它的值。公共抽象类Ship{private int size;公共静态int length;受保护的Ship(int size,String type,String shortForm){this.size=size;this.setType(type);this.shortForm=shortForm;}public static void setLength(int length){}public int getLength(){return length;}int getSize(){return size;}}}----公共类潜艇扩展Ship{private final static int size=1;/***构造函数,设置继承的长度变量。*/public subside(){super(size,“subside”,“#”;}}@user742730将代码直接包含在问题中更具可读性(问题下方有一个编辑链接)。我已经为你做了。我在阵列舰队中实例化了新潜艇。在assertEquals(subside.getLenth(),0)@Test public void testShipConstructor2(){Ship[]fleet=new Ship[10];int length=1;fleet[3]=new subside();assertEquals(subside.getLength(),0);}中,测试现在错误地通过,因为测试正在查看名为length的int字段,但是构造函数正在设置名为Size的字段。我已经根据您添加的代码更新了我的代码示例…不客气。请通过接受解决您问题的答案来表达您对社区的感谢。我在阵列舰队中实例化了新潜艇。在assertEquals(subside.getLenth(),0)@Test public void testShipConstructor2(){Ship[]fleet=new Ship[10];int length=1;fleet[3]=new subside();assertEquals(subside.getLength(),0);}中,测试现在错误地通过,因为测试正在查看名为length的int字段,但是构造函数正在设置名为Size的字段。我已经根据您添加的代码更新了我的代码示例…不客气。请接受解决您问题的答案,以表达您对社区的感谢。谢谢。现在,它似乎与大小而不是长度有关@Test public void testShipConstructor2(){Ship[]舰队=新船[10];int size=1;舰队[3]=新潜艇();assertEquals(subside.getSize(),1);}稍等,使值为静态使测试工作,但程序停止工作。因此,我们已恢复为非静态值,但现在测试不起作用。还有其他简单的方法来测试构造函数吗?我不理解你的测试。在上面的代码中,您从不初始化长度,那么为什么长度应该是1呢?谢谢。现在,它似乎与大小而不是长度有关@Test public void testShipConstructor2(){Ship[]舰队=新船[10];int size=1;舰队[3]=新潜艇();assertEquals(subside.getSize(),1);}稍等,使值为静态使测试工作,但程序停止工作。因此,我们已恢复为非静态值,但现在测试不起作用。还有其他简单的方法来测试构造函数吗?我不理解你的测试。在上面的代码中,您从不初始化长度,那么为什么长度应该是1呢?