在编写单元测试以返回boolean
一个需要2 String
s 的函数时,我需要依次测试作为参数之一的字母('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 转换为a的可靠方法String
吗?是首选方式吗?我对Java并不了解很多,所以想对此进行一些说明。
@ElliottFrisch但是为什么呢?在这里不需要流,但是即使您坚持在每个循环中都使用流,又为什么不至少要使用
—
PhilipRoman
IntStream.rangeClosed('a', 'z')
?
没有单一的“正确”方法。可能至少有五种方法可以做到这一点:您选择哪种方式取决于时尚以及科学事实。在大多数情况下,这根本无关紧要,并且测试程序当然是其中一种情况。
—
user207421
@PhilipRoman因为在那里(Edmund Hillary)。因为我可以。因为我们要(我想是Billie Piper)。这也是一个很酷的方法。
—
Elliott Frisch
IntStream.range(0, 26).mapToObj(i -> Character.toString((char) ('a' + i))).forEach(x -> assertTrue(MyClass.MyFunction(testSubject, x)));