Привет, я рискую выглядеть глупо. У меня проблема с Junit, но я нахожусь на той стадии, когда мне все равно.
Я пытаюсь написать «простой» тест JUnit для Enum и Я чуть не рву волосы от разочарования.
Я получаю известную ошибку «не могу найти символ», когда пытаюсь вызвать свои методы в своем publi c Enum. Мне кажется, что я все делаю правильно, и я не понимаю, чего мне не хватает.
Некоторое время я просматривал Stackoverflow в течение некоторого времени и видел много людей, задающих похожие вопросы, но я не мог найти подходящего решения для моя проблема.
Мне кажется, что эту проблему легко обнаружить, если вы опытный программист, но я долго сидел с этим кодом и не вижу проблемы.
I был бы очень признателен, если бы кто-нибудь мог указать причину, прежде чем я стал лысым ...
// EDIT 1: добавлен пакет в Enum
// EDIT 2: скопирован тот же код в Eclipse и метод виден, и я могу запустить тест. Я предполагаю, что это не синтаксическая проблема, а внутренняя ошибка редактора, которым в моем случае является Netbeans. Дело закрыто, я полагаю .
// РЕДАКТИРОВАТЬ 3: Добавлен тег Netbeans
Вот мой Enum:
package chess.domain;
import java.util.stream.Stream;
public enum Position {
A8(1,8), B8(2,8), C8(3,8), D8(4,8), E8(5,8), F8(6,8), G8(7,8), H8(8,8),
A7(1,7), B7(2,7), C7(3,7), D7(4,7), E7(5,7), F7(6,7), G7(7,7), H7(8,7),
A6(1,6), B6(2,6), C6(3,6), D6(4,6), E6(5,6), F6(6,6), G6(7,6), H6(8,6),
A5(1,5), B5(2,5), C5(3,5), D5(4,5), E5(5,5), F5(6,5), G5(7,5), H5(8,5),
A4(1,4), B4(2,4), C4(3,4), D4(4,4), E4(5,4), F4(6,4), G4(7,4), H4(8,4),
A3(1,3), B3(2,3), C3(3,3), D3(4,3), E3(5,3), F3(6,3), G3(7,3), H3(8,3),
A2(1,2), B2(2,2), C2(3,2), D2(4,2), E2(5,2), F2(6,2), G2(7,2), H2(8,2),
A1(1,1), B1(2,1), C1(3,1), D1(4,1), E1(5,1), F1(6,1), G1(7,1), H1(8,1);
private final int COLUMN;
private final int ROW;
Position(int col, int row) {
this.COLUMN = col;
this.ROW = row;
}
public int getCOLUMN() {
return this.COLUMN;
}
public int getROW() {
return this.ROW;
}
public Stream<Position> getColumn(Position position){
return Stream.of(Position.values()).filter(pos -> (pos.getCOLUMN()) == position.getCOLUMN());
}
public Stream<Position> getRow(Position position){
return Stream.of(Position.values()).filter(pos -> (pos.getROW()) == position.getROW());
}
}
И вот мой тест :
package chess.domain;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
public class PositionTest {
public PositionTest() {
}
@BeforeAll
public static void setUpClass() {
}
@AfterAll
public static void tearDownClass() {
}
@BeforeEach
public void setUp() {
}
@AfterEach
public void tearDown() {
}
/**
* Test of getCOLUMN method, of class Position.
*/
@Test
public void testGetCOLUMN() {
int expectedColumn = 1;
int actualColumn = Position.A8.getCOLUMN(); // ERROR IS LOCATED HERE ON METHOD "getCOLUMN"
assertEquals(expectedColumn, actualColumn);
}
/**
* Test of getROW method, of class Position.
*/
@Test
public void testGetROW() {
int expectedRow = 1;
int actualRow = Position.H1.getROW(); // ERROR IS LOCATED HERE ON METHOD "getROW"
assertEquals(expectedRow, actualRow);
}
}