Я пытаюсь использовать setUp для инициализации массива объектов в JUnit для моих методов тестирования, но я делаю что-то не так, поскольку тесты выдают ошибки (исключение нулевого указателя). Они работают нормально, когда я инициализирую массивы в самих тестовых методах, но это, очевидно, не идеально. Кто-нибудь может указать, что я здесь делаю не так?
class MainTest {
Lord baratheons[];
Lord starks[];
//Setup & Teardown
@Before
static void setUp() throws Exception {
Lord baratheons[] = new Lord[3];
baratheons[0] = new Lord("Robert", 15);
baratheons[1] = new Lord("Renly", -5);
baratheons[2] = new Lord("Stannis", 30);
System.out.println("Baratheons initialised!");
Lord starks[] = new Lord[3];
starks[0] = new Lord("Robb", -60);
starks[1] = new Lord("Eddard", 0);
starks[2] = new Lord("Jon", 90);
System.out.println("Starks initialised!");
}
//Tests
@Test
void testGratefulLord() {
// Lord baratheons[] = new Lord[3];
// baratheons[0] = new Lord("Robert", 15);
int x = baratheons[0].getRelationship();
baratheons[0].giveFief();
assertEquals(baratheons[0].getRelationship(), (x+=10));
}
РЕДАКТИРОВАТЬ:
N.B
В дополнение к выполнению шагов, описанных в приведенных ниже решениях, я хотел бы отметить для потомков, что я также использовал неправильный тег для установки. Поскольку это JUnit 5, тег @BeforeEach. @Before - это тег для JUnit 4, поэтому метод установки не вызывался. Я надеюсь, что это полезно для будущих пользователей.