Pisząc testy jednostkowe dla funkcji zwracającej, boolean
która zajmuje dwa String
s, musiałem przetestować każdy znak alfabetu ( 'a'
-'z'
) w sekwencji jako jeden z parametrów, jeden po drugim, więc napisałem to, aby to zrobić:
for(char c = 'a'; c <= 'z'; c++)
{
assertTrue(MyClass.MyFunction(testSubject, new String(c));
}
Myślałbym, że to jest dopuszczalne, ale tak nie było, więc po prostu zrobiłem to w ten sposób:
for(char c = 'a'; c <= 'z'; c++)
{
assertTrue(MyClass.MyFunction(testSubject, ((Character) c).toString());
}
Czy jest to niezawodna metoda konwersji char
na String
język Java? Czy to preferowany sposób? Nie znam się dużo na Javie, dlatego chciałbym coś wyjaśnić.
IntStream.rangeClosed('a', 'z')
?
IntStream.range(0, 26).mapToObj(i -> Character.toString((char) ('a' + i))).forEach(x -> assertTrue(MyClass.MyFunction(testSubject, x)));