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

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

有沒有辦法測試私有方法?

有沒有辦法測試私有方法?

森林海 2021-07-01 16:00:31
我有一個 React 組件“A”。其中一個方法 'foo' 作為 prop 傳遞給組件 'B'。單擊組件 B 時會觸發(fā) foo。問題 - 如何測試這個 foo 方法?我可以通過將方法 foo 設(shè)為公開并單獨(dú)測試來規(guī)避這個問題。但我不想公開。我嘗試過但沒有奏效的另一種方法是觸發(fā)組件 B 中的 click 事件,希望它會調(diào)用 foo 方法。不確定是否可能,如果可能的話如何!const A = () => {    const foo = () => {console.log('Clicked!')}    return (      <B clickTrigger={foo} />    )}
查看完整描述

2 回答

?
動漫人物

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超10個贊

沒有辦法在閉包中獲取引用,因此您必須以某種方式將其導(dǎo)出到您的測試框架。有一種模式使用 WeakMap 來存儲私有狀態(tài),如果測試框架可以訪問 WeakMap,它可以查看內(nèi)部,而沒有該引用的其他對象則不能。


let p = new WeakMap();

const A = () => {

    let foo = p.get(A);

    return (

        <B clickTrigger={foo} />

    );

};

p.set(A, () => {console.log('Clicked!')});


// Export A and p to testing framework but just A to clients


查看完整回答
反對 回復(fù) 2021-07-15
  • 2 回答
  • 0 關(guān)注
  • 194 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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