При написании модульных тестов для функции, возвращающей booleanдве Stringсекунды, мне нужно было проверить каждый символ алфавита ( 'a'- 'z') последовательно как один из параметров, один за другим, поэтому я написал это для этого:
for(char c = 'a'; c <= 'z'; c++)
{
assertTrue(MyClass.MyFunction(testSubject, new String(c));
}
Я бы подумал, что это допустимо, но это не так, поэтому я просто сделал это так:
for(char c = 'a'; c <= 'z'; c++)
{
assertTrue(MyClass.MyFunction(testSubject, ((Character) c).toString());
}
Является ли это надежный способ преобразовать charк Stringв Java? Это предпочтительный способ? Я не очень много знаю о Java, поэтому хотел бы получить разъяснения по этому поводу.
IntStream.rangeClosed('a', 'z')?
Stringконструктор, который не существует? Поправьте меня, если я ошибаюсь, но, насколько мне известно, в классе нет конструктора, Stringкоторый принимает один charаргумент. Обратите внимание, что charэто не то же самое, что char[].
IntStream.range(0, 26).mapToObj(i -> Character.toString((char) ('a' + i))).forEach(x -> assertTrue(MyClass.MyFunction(testSubject, x)));