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

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

如何對(duì)私有方法進(jìn)行單元測(cè)試?

如何對(duì)私有方法進(jìn)行單元測(cè)試?

飲歌長(zhǎng)嘯 2019-07-01 15:39:26
如何對(duì)私有方法進(jìn)行單元測(cè)試?我正在構(gòu)建一個(gè)類(lèi)庫(kù),它將包含一些公共和私有方法。我希望能夠?qū)λ接蟹椒ㄟM(jìn)行單元測(cè)試(主要是在開(kāi)發(fā)過(guò)程中,但也可能對(duì)將來(lái)的重構(gòu)很有用)。正確的方法是什么?
查看完整描述

3 回答

?
森欄

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

如果要對(duì)私有方法進(jìn)行單元測(cè)試,可能會(huì)出現(xiàn)問(wèn)題。單元測(cè)試(通常來(lái)說(shuō))意味著測(cè)試類(lèi)的接口,這意味著它的公共(和受保護(hù)的)方法。當(dāng)然,您可以“黑”此問(wèn)題的解決方案(即使僅通過(guò)將方法公開(kāi)),但您可能還需要考慮:

  1. 如果要測(cè)試的方法確實(shí)值得測(cè)試,那么將其移到自己的類(lèi)中可能是值得的。
  2. 向調(diào)用私有方法的公共方法添加更多測(cè)試,測(cè)試私有方法的功能。(正如評(píng)論員所指出的,只有當(dāng)這些私有方法的功能確實(shí)是公共接口的一部分時(shí),才應(yīng)該這樣做。如果它們實(shí)際執(zhí)行對(duì)用戶(hù)隱藏的功能(即單元測(cè)試),這可能是不好的)。


查看完整回答
反對(duì) 回復(fù) 2019-07-01
?
慕斯709654

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

測(cè)試私有方法可能沒(méi)有用。然而,有時(shí)我也喜歡從測(cè)試方法中調(diào)用私有方法。大多數(shù)情況下,為了防止測(cè)試數(shù)據(jù)生成中的代碼重復(fù).

Microsoft為此提供了兩種機(jī)制:

存取器

  • 轉(zhuǎn)到類(lèi)定義的源代碼
  • 右鍵單擊類(lèi)的名稱(chēng)。
  • 選擇“創(chuàng)建私有訪(fǎng)問(wèn)器”
  • 選擇應(yīng)該創(chuàng)建訪(fǎng)問(wèn)器的項(xiàng)目=>您將得到一個(gè)名為foo_accessor的新類(lèi)。此類(lèi)將在編譯期間動(dòng)態(tài)生成,并對(duì)所有可公開(kāi)的成員進(jìn)行獎(jiǎng)勵(lì)。

然而,當(dāng)涉及到原始類(lèi)接口的更改時(shí),這種機(jī)制有時(shí)有點(diǎn)棘手。所以,大多數(shù)時(shí)候我都避免使用這個(gè)。

私隱對(duì)象類(lèi)另一種方法是使用Microsoft.VisualStudio.TestTools.UnitTesting.PrivateObject

// Wrap an already existing instancePrivateObject accessor = new PrivateObject( objectInstanceToBeWrapped );// Retrieve a private fieldMyReturnType accessiblePrivateField = (MyReturnType) accessor.GetField( "privateFieldName" );// Call a private methodaccessor.Invoke( "PrivateMethodName", new Object[] {/* ... */} );


查看完整回答
反對(duì) 回復(fù) 2019-07-01
  • 3 回答
  • 0 關(guān)注
  • 1338 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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