亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

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

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

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

2 回答

?
動漫人物

TA貢獻1815條經驗 獲得超10個贊

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


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


查看完整回答
反對 回復 2021-07-15
  • 2 回答
  • 0 關注
  • 195 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號