Чтение аннотации на вершине теста Java TestNG и я аннотация, как:Java подрезать характер и пробельные
@TestInfo(id={ " C26603", " C10047" })
где TestInfo
только интерфейс, который имеет id() as String array
:
public String[] id() default {};
и C26603
и C10047
- это только те тесты, которые я назначаю.
Вот как тестовая структура выглядит как (например):
Случай 1:
@TestInfo(id={ " C26603", " C10047" })
public void testDoSomething() {
Assert.assertTrue(false);
}
Аналогичен более чистый случай будет:
Случай 2:
@TestInfo(id={ "C26603", "C10047" })
Как вы можете видеть, этот случай 2 более ясный, чем случай 1. Этот случай 2 не имеет пробелов в тестовых идентификаторах.
Как извлечь эти идентификаторы и убедиться, что они не имеют этого символа C в начале и просто в чистом номере? Например, мне нужен 26603
для моего первого id и 10047
для второго. В массиве id есть несколько пробелов (внутри кавычек). Я хочу обрезать все это (например, белые пробелы) и просто получить идентификатор. В настоящее время я применяю for loop
для обработки каждого идентификатора, и как только я получу чистый номер, я хочу обратиться к стороннему API-интерфейсу (API ожидает чистого номера в качестве ввода и поэтому важно удалить C как начальный символ и другие пробелы).
Вот что я пробовал:
TestInfo annotation = method.getAnnotation(TestInfo.class);
if(annotation!=null) {
for(String test_id: annotation.id()) {
//check if id is null or empty
if (test_id !=null && !test_id.isEmpty()) {
//remove white spaces and check if id = "C1234" or id = "1234"
if(Character.isLetter(test_id.trim().charAt(0))) {
test_id = test_id.substring(1);
}
System.out.println(test_id);
System.out.println(test_id.trim());
}
}
}
Приведенный выше код дает мне C26603
и not 26603
для случая 1. Он работает для случая 2.
ПРИМЕР 3:
@TestInfo(id={ " 26603", " 10047" })
Для этого случая нет C как начального символа acter идентификатора теста, поэтому функция должна быть достаточно умной, чтобы просто обрезать пробелы и идти вперед.
Я взял беглый взгляд через ваш профиль, и так как вы довольно новый пользователь, вы могли бы посмотреть на [это] (http://stackoverflow.com/help/someone-answers)? У вас будет лучший опыт в SO, если вы вознаградите людей за то, что помогли вам. –
Получил это, я буду помнить об этом. –