第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

使用 Junit 對(duì)邊緣情況進(jìn)行單元測(cè)試

使用 Junit 對(duì)邊緣情況進(jìn)行單元測(cè)試

BIG陽(yáng) 2021-08-04 10:18:35
我有一個(gè)名為StringProcessor. 其中的breakLongWords()方法,只要字符序列缺少預(yù)定義長(zhǎng)度的空格,就會(huì)向輸入添加零寬度空格:public class StringProcessor {    private static final int WORD_MAX_LENGTH = 40;    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    }}static 字段WORD_MAX_LENGTH是一個(gè)實(shí)現(xiàn)細(xì)節(jié),不應(yīng)暴露給其他類(lèi)(包括測(cè)試類(lèi))?,F(xiàn)在,如何在不訪問(wèn) JUnit 的情況下測(cè)試邊緣情況WORD_MAX_LENGTH?例如:@Testpublic void breakLongWords_EdgeCase() {    String brokenText = stringProcessor.breakLongWords            ("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); // its length should be = WORD_MAX_LENGTH     assertEquals(41, brokenText.length()); // 41 (WORD_MAX_LENGTH + 1) is also hard-coded here}
查看完整描述

3 回答

?
慕碼人2483693

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ì)于其他的則是隱藏的。


查看完整回答
反對(duì) 回復(fù) 2021-08-04
?
天涯盡頭無(wú)女友

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超9個(gè)贊

你有兩個(gè)選擇:

  1. 暴露WORD_MAX_LENGTH在你的測(cè)試中。

  2. 為測(cè)試保持第二個(gè)常數(shù)。


查看完整回答
反對(duì) 回復(fù) 2021-08-04
?
開(kāi)心每一天1111

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。


查看完整回答
反對(duì) 回復(fù) 2021-08-04
  • 3 回答
  • 0 關(guān)注
  • 214 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)