ในขณะที่เขียนการทดสอบหน่วยสำหรับฟังก์ชั่นการส่งคืน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());
}
นี่เป็นวิธีที่เชื่อถือได้ในการแปลง a char
เป็นString
in Java หรือไม่? มันเป็นวิธีที่ต้องการหรือไม่ ฉันไม่รู้มากเกี่ยวกับ Java ดังนั้นอยากจะชี้แจงเกี่ยวกับเรื่องนี้
IntStream.rangeClosed('a', 'z')
?
IntStream.range(0, 26).mapToObj(i -> Character.toString((char) ('a' + i))).forEach(x -> assertTrue(MyClass.MyFunction(testSubject, x)));