簡體   English   中英

TypeError:無法讀取undefined的屬性'toBeA'

[英]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'); }); 
這是我的utils.js文件

 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM