У меня есть перечисление, которое может быть представлено различными способами. Как String, как целое число и как Double (разные диапазоны), как Vector2D и, наконец, как значение enum. Вот обобщенный пример, значения не являются репрезентативными. Фактическое использование, которое у меня есть для этого, имеет более высокую ценность и методы.Junit тестирование сложных перечислений
public enum Example {
value0("Name0", 0, 0.0, 0.01707, 0.12534);
value1("Name1", 1, 25.0, 0.1707, 0.53434);
value2("Name2", 2, 55.0, 0.70701, 0.23534);
value3("Name3", 3, 65.0, 0.01707, 0.34786);
value5("Name4", 4, 100.0, 0.01707, 0.42594);
private final String name;
private final int number;
private final double head;
private final Vector2d pointVec;
/**
* Constructor invoked for each value above.
*/
enumExample(String name, int no, double hdg, float compX, float CompY) {
this.name = name;
this.number = no;
this.head = hdg;
this.pointVec = new Vector2d(compX, compY);
}
public String getName(){
return name;
}
public int getNumber() {
return no;
}
public int getHead() {
return head;
}
public Vector2D getVector() {
return pointVec;
}
public Example getCalcValue(int value) {
return calcValue(getNumber(value));
}
/*
* There are more methods that perform calculations on the enum's
* attributes.
*/
}
Чтобы гарантировать, что другие классы, использующие это перечисление, работают с правильно функциональным перечислением. Я хочу иметь полный набор тестов для этого, гарантируя, что ввод данных был выполнен правильно и что перечисление и связанные с ним данные не повреждены.
В настоящее время пример этого с 5 значениями enum имеет 31 тест. Мне нужно, чтобы в версиях это достигало 33 значений enum. Это около 200 тестов.
Я надеялся использовать данные, управляемые тестированием, поскольку это упростило бы проверку тестовых данных на глаз.
Есть ли у кого-нибудь идеи относительно того, как установить это для перечисления? Все примеры тестов, основанных на данных, которые я нашел, имеют простой класс с одним методом тестирования.
Для меня, похоже, вы не хотите проверять перечисление, но постоянными данными в перечислении. Чтобы проверить это, вы, вероятно, можете написать параметризованный тест, который запускает список тестов, принимая значение перечисления и ожидаемые результаты в качестве параметров. Таким образом, вы пишете только один (или более) тест на каждое значение, которое вы хотите протестировать, и затем можете запускать эти (эти) тесты во всех своих значениях перечисления. Если это то, что вы хотите, я мог бы привести вам пример ... –
Какое свойство перечисления вы пытаетесь протестировать? –
Показать некоторые из существующих тестов. – weston