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

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

如何為沒(méi)有 getter 方法的 setter 方法編寫單元測(cè)試?

如何為沒(méi)有 getter 方法的 setter 方法編寫單元測(cè)試?

繁花不似錦 2024-01-05 17:03:30
我有一堂課看起來(lái)像這樣public class Assignment {   protected String AssName;   public void SetAssSpec(String theSpec){     this.AssSpec = theSpec;   }}這是我的測(cè)試課程class AssignmentTest {   @Test   void testSetAssSpec(){       String assignmentName = "CSE101";       Assignment cseAssigment = new Assignment();       cseAssigment.SetAssSpec(String assignmentName);       //Now what?   }} 因?yàn)闆](méi)有g(shù)etter方法。訪問(wèn)集合字符串的另一種方法是,cseAssigment.AssName但問(wèn)題是 AssName 受到保護(hù),所以我無(wú)法訪問(wèn)它。我將如何測(cè)試它?我是測(cè)試和 Junit 的新手。那么,請(qǐng)告訴我這是否有意義?
查看完整描述

4 回答

?
絕地?zé)o雙

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

此示例中的問(wèn)題是它沒(méi)有顯示設(shè)置值后如何使用該值。這就是如何測(cè)試它的線索。

如果不使用,則 setter 就沒(méi)用,也應(yīng)該刪除。

它是受保護(hù)的,所以我猜有一個(gè)子類正在使用它。在這種情況下,我將使用測(cè)試子類的方法。

如果通過(guò)反射使用,我也會(huì)通過(guò)反射來(lái)測(cè)試它。


查看完整回答
反對(duì) 回復(fù) 2024-01-05
?
qq_花開花謝_0

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

您可以聲明一個(gè)具有 getter 的本地子類:


@Test

void testSetAssSpec(){

? ?class SubAssigment extends Assignment {

? ? ?String getter() { return AssName; }

? ?}


? ?String assignmentName = "CSE101";

? ?SubAssigment cseAssigment = new SubAssigment();

? ?cseAssigment.SetAssSpec(String assignmentName);


? ?assertEquals(assignmentName, cseAssignment.getter());

}

您可能并不真正需要測(cè)試 Java 分配是否有效。



查看完整回答
反對(duì) 回復(fù) 2024-01-05
?
HUX布斯

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

測(cè)試 getter 方法可能有些過(guò)頭了,但是如果您想在沒(méi)有 getter 的情況下檢查/測(cè)試對(duì)象中私有變量的值,您可以使用反射


Field f = obj.getClass().getDeclaredField("AssName"); //NoSuchFieldException

f.setAccessible(true);

String assignmentName = (String) f.get(obj); 


查看完整回答
反對(duì) 回復(fù) 2024-01-05
?
胡說(shuō)叔叔

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

String assignmentName = "CSE101";

Assignment cseAssigment = new Assignment();

cseAssigment.SetAssSpec(String assignmentName);

assertEquals(AssSpec ,ReflectionTestUtils.getField(cseAssigment, "AssSpec"));


查看完整回答
反對(duì) 回復(fù) 2024-01-05
  • 4 回答
  • 0 關(guān)注
  • 239 瀏覽
慕課專欄
更多

添加回答

舉報(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)