3 回答
TA贡献1860条经验 获得超9个赞
通常这些字段被设置为“包私有”(即没有访问修饰符)并且单元测试被放置在同一个包上。
所以常量对于来自同一个包的测试和类是可见的,而对于其他的则是隐藏的。
TA贡献1836条经验 获得超13个赞
我可能会重新设计 StringProcessor 和测试。
public class StringProcessor {
private static final int WORD_MAX_LENGTH = 40;
public boolean stringLengthIsSafe(CharSequence input){
if(input.length()>WORD_MAX_LENGTH){
return false;
}
return true;
}
public String breakLongWords(CharSequence input) {
// add a zero-width space character after a word
// if its length is greater than WORD_MAX_LENGTH and doesn't have any space in it
}
}
然后测试布尔值。
@Test
public void breakLongWords_EdgeCase() {
boolean safeString = stringProcessor.stringLengthIsSafe
("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); // its length should be = WORD_MAX_LENGTH
assertEquals(true, safeString); // 41 (WORD_MAX_LENGTH + 1) is also hard-coded here
}
在您的最终实现中,breakLongWords 可以在尝试对 CharSequence 进行任何操作之前实现 stringLengthIsSafe。
添加回答
举报