您好,登錄后才能下訂單哦!
在Jest框架中,測試私有方法并不是一種推薦的做法,因為這違反了封裝原則。然而,如果你確實需要測試私有方法,可以使用以下方法:
將私有方法更改為公共方法:將私有方法更改為公共方法,這樣你就可以直接在測試文件中調用它們。但是,請注意,這可能會破壞代碼的封裝性。
使用jest.spyOn()
監聽私有方法:你可以使用jest.spyOn()
來監聽私有方法的調用。這樣,你可以驗證私有方法是否被調用,以及它們的參數和返回值。但是,這種方法無法測試私有方法的內部實現。
使用rewire
庫:rewire
庫允許你訪問和修改模塊內部的變量和函數。這樣,你可以訪問和測試私有方法。首先,安裝rewire
庫:
npm install rewire
然后,在測試文件中使用rewire
替換require
來導入模塊:
const rewire = require('rewire');
const myModule = rewire('./myModule.js');
現在,你可以使用myModule.__get__()
和myModule.__set__()
方法訪問和修改模塊內部的變量和函數。例如,要測試一個名為_privateMethod
的私有方法,你可以這樣做:
const privateMethod = myModule.__get__('_privateMethod');
test('_privateMethod should return the correct result', () => {
const input = 'some input';
const expectedOutput = 'expected output';
expect(privateMethod(input)).toBe(expectedOutput);
});
請注意,這些方法都不是最佳實踐,因為它們破壞了代碼的封裝性。在編寫測試時,應該關注公共接口和功能,而不是私有實現細節。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。