属性类的Java Junit失败



我有Mappa类,mappaName作为一个属性(从enum名称中选择)和getMappaName方法返回它,当我运行一个测试来比较从名称中选择的mappaName之一时,我得到预期的FERMI,但为:null

    public class Mappa {
        private Name mappaName;
        private final Settore [][] settore;
        private int Matrice [][];
        private static final int X=23;
        private static final int Y=14;
        public Mappa (Name mappaName){//If i run new Mappa (Name.FERMI)
//isn't supposed to set mappaName to Name.FERMI?
            settore = new Settore[X][Y];
            for (int i=0; i < X; i++){
                for (int j=0; j<Y; j++) {
                    settore[i][j] = new Settore (i,j);
                }
            }
            Matrice = new int[23][14];
            if(mappaName==Name.FERMI){
                settore[10][8]=new Alieni(10,8);
                settore[10][9]=new Umani(10,9);
            }
            if(mappaName==Name.GALILEI||mappaName==Name.GALVANI){
                settore[10][5]=new Alieni(10,5);
                settore[10][7]=new Umani(10,7);
            }
        }
        public Name getMappaName() {
            return mappaName;
        }
    }
    public enum Name {
    FERMI, GALILEI, GALVANI
    }
    @Test
        public void testMappaNome(){
            Mappa mappa = new Mappa(Name.FERMI);
            assertEquals(Name.FERMI, mappa.getMappaName());
        }

您忘记将局部变量 mappaName赋值给字段 mappaName。在构造函数开头添加:

this.mappaName = mappaName;

在构造函数中,仍然需要将参数mappaName设置为类字段mappaName。像下图:

public Mappa (Name mappaName){//If i run new Mappa (Name.FERMI)
//isn't supposed to set mappaName to Name.FERMI?
this.mappName = mappaName; // assign the value to your class entry.

相关内容

  • 没有找到相关文章

最新更新