[英]TypeError: Cannot read property 'toBeA' of undefined
我試圖在nodejs中使用expect來測試我的代碼。 我需要在代碼中期望並且我想使用期望的函數toBeA()。 但不幸的是,我收到錯誤,無法解決它。 所以,我在這里發帖。
const utils = require('./utils'); const expect = require('expect'); it('should add two numbers', () => { var result = utils.add(33,17); expect(result).toBe(50).toBeA('number'); });
module.exports.add = (a,b) => { return a+b; };
當我運行代碼時,我收到此錯誤
TypeError: Cannot read property 'toBeA' of undefined
你不能連鎖測試。 toBe
不返回任何內容,因此錯誤。 你要
expect(result).toBe(50);
expect(result).toBeA('number');
(雖然第一個意味着另一個,所以你也可以省略它)
這工作正常而不是toBeA()
expect(typeof result).toBe('number');
期望斷言庫已經改變了所有權。 它被移交給Jest團隊,他們以無限的智慧創造了一個新的API 。
您仍然可以像以前一樣安裝expect,“npm install expect --save-dev”,目前版本為21.2.1。 大多數方法名稱將保持不變,除了少數,包括'toExist(),toBeA()'。
當使用npm i expect --save-dev
命令for install expect時,自動安裝expect的最后版本。 在最后一個版本鏈中不起作用。
要解決此問題,您應該使用以下命令:
npm i expect@1.20.2
在這個版本中你可以使用鏈接期望toNotBe
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.