嗯,您可能之前聽說過 JavaScript 中的物件以及它們對於理解該語言的重要性。
物件因其“key”:“value”模型而使 JS 變得非常可讀和有用。但我想強調的是,「值」部分不僅接受一個簡單的字串,還接受另一個對象,而該對象又可能是另一個對象,依此類推。例如:
const character = { name:"Arthur Morgan", age:24, face: { hairSize:5, eyesColor: "blue", } }
這個片段表明,臉既是一個對象,也是一個角色。這樣做完全沒問題,而且許多複雜的 API 都會處理這樣的數據,並在重要時一遍又一遍地進行分組。
但是物件的真正力量依賴於函數,這個 Leet Code 問題就解決了它,並為我們提供了測試庫如何在幕後工作的要點。基本上,您需要一個函數來驗證值是否等於預期值:toBe() 和 notToBe()。為此,我們可以傳回一個具有這些函數的物件。順便說一句,使用箭頭函數讓它更漂亮、更直接。
答案在這裡。
function expect(val) { function toBe(anotherValue) { if (val === anotherValue) { return true; } throw Error("Not Equal"); } function notToBe(anotherValue) { if (val !== anotherValue) { return true; } throw Error("Equal"); } return { toBe: (anotherValue) => toBe(anotherValue), notToBe: (anotherValue) => notToBe(anotherValue), }; }
我們可以使用另一個物件快速看到它的運行:著名的控制台及其函數日誌。
console.log(expect(5).toBe(null)); // give us an error "Not Equal", because 5 is not null
請注意,傳回物件的事實使我們可以自由地使用 expect(),然後緊接著使用 .toBe()。這是因為我們傳回一個物件並立即存取屬性 toBe,它是一個函數。
這個 Leet 程式碼問題是了解物件和函數如何協同工作並在 JavaScript 中建立出色內容的絕佳方法。我希望你喜歡:)
以上是在學習 javascript 的同時寫一個測試函數的詳細內容。更多資訊請關注PHP中文網其他相關文章!