Я закодировал тип перечисления, который вызывает следующие синтаксические ошибки при запуске созданного для него теста JUnit:
java.lang.Error: Unresolved compilation problems:
Syntax error, insert "enum Identifier" to complete EnumHeaderName
Syntax error, insert "EnumBody" to complete EnumDeclaration
Syntax error, insert "}" to complete ClassBody
Мой тип перечисления имеет статический функции, которые для конкретной строки возвращают константу перечисления. Вот часть моего кода типа enum:
public enum MusicType {
ACCIDENTAL, LETTER, OCTAVE, REST, DUR, CHORD, TUPLET;
public static MusicType is_accidental(String a){
if (a=="^" | a=="_"|a=="=")
return ACCIDENTAL;
else return null;
}
}
Остальные мои статические функции очень похожи (т.е. is_letter
, is_octave
и т. д.), хотя некоторые используют input.matches(regex)
вместо проверки того, соответствует ли ввод определенной строке.
Вот начало теста JUnit, который проверяет функцию, работающую со случайной константой:
public class MusicTypeTest {
@Test
public void accidentalTest(){
String sharp = "^";
String flat = "_";
String natural = "=";
assertEquals(MusicType.ACCIDENTAL, MusicType.is_accidental(sharp));
assertEquals(MusicType.ACCIDENTAL, MusicType.is_accidental(flat));
assertEquals(MusicType.ACCIDENTAL, MusicType.is_accidental(natural));
}
}
Другие функции в моем тесте JUnit, которые тестируют все статические функции enum, закодированы аналогично. Я не могу понять, почему у меня эти синтаксические ошибки (я впервые кодирую тип перечисления). Я кодировал в Eclipse и пока не нашел недостающих "}". Я не знаю, связано ли это с тем, как я написал тест, или с тем, как я объявил свои переменные. Кто-нибудь знает, почему у меня возникают эти синтаксические ошибки?