단위 테스트를 수행 boolean
하는 데 2 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());
}
이것이 Java char
에서 a 로 변환하는 신뢰할 수있는 방법 String
입니까? 선호되는 방법입니까? Java에 대해 많이 알지 못하므로 이에 대한 설명이 필요합니다.
@ElliottFrisch 그러나 왜? 여기서 스트림은 불필요하지만 모든 루프에 스트림을 사용한다고 주장하더라도 적어도 왜 사용하지
—
PhilipRoman
IntStream.rangeClosed('a', 'z')
않습니까?
하나의 '올바른'방법은 없습니다. 이것을하기위한 최소한 5 가지 방법이있을 것입니다 : 당신이 선택하는 것은 과학적 사실만큼이나 패션에 달려 있습니다. 대부분의 경우 단순히 중요하지 않으며 테스트 프로그램은 확실히 그러한 경우 중 하나입니다.
—
user207421
@PhilipRoman 있기 때문에 (Edmund Hillary). 내가 할 수 있기 때문에. 우리가 원하기 때문에 (빌리 파이퍼, 나는 생각합니다). 그것은 멋진 접근법이기도합니다.
—
엘리엇 프리쉬
IntStream.range(0, 26).mapToObj(i -> Character.toString((char) ('a' + i))).forEach(x -> assertTrue(MyClass.MyFunction(testSubject, x)));