3 回答

TA貢獻(xiàn)1860條經(jīng)驗(yàn) 獲得超9個(gè)贊
通常這些字段被設(shè)置為“包私有”(即沒(méi)有訪問(wèn)修飾符)并且單元測(cè)試被放置在同一個(gè)包上。
所以常量對(duì)于來(lái)自同一個(gè)包的測(cè)試和類(lèi)是可見(jiàn)的,而對(duì)于其他的則是隱藏的。

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超9個(gè)贊
你有兩個(gè)選擇:
暴露
WORD_MAX_LENGTH
在你的測(cè)試中。為測(cè)試保持第二個(gè)常數(shù)。

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超13個(gè)贊
我可能會(huì)重新設(shè)計(jì) StringProcessor 和測(cè)試。
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
}
}
然后測(cè)試布爾值。
@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
}
在您的最終實(shí)現(xiàn)中,breakLongWords 可以在嘗試對(duì) CharSequence 進(jìn)行任何操作之前實(shí)現(xiàn) stringLengthIsSafe。
添加回答
舉報(bào)