Java 属性的 Junit 失败 Class
Java Junit Failure For an Attribute Class
我有 class Mappa,它具有 mappaName 作为属性(从枚举名称中选择)和方法 getMappaName returns 它,当我 运行 测试比较从 Name 中选择的 mappaName 之一我得到预期的 FERMI 但 was: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 设置为 class 字段 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.
我有 class Mappa,它具有 mappaName 作为属性(从枚举名称中选择)和方法 getMappaName returns 它,当我 运行 测试比较从 Name 中选择的 mappaName 之一我得到预期的 FERMI 但 was: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 设置为 class 字段 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.