TypeError: expect(...).toBeA is not a function
TypeError: expect(...).toBeA is not a function
这是我的 message.test.js 文件。
var expect = require('expect');
var {generateMessage} = require('./message');
describe('generateMessage', () => {
it('should generate correct message object', () => {
var from = 'Jen';
var text = 'Some message';
var message = generateMessage(from, text);
expect(message.createdAt).toBeA('number');
expect(message).toInclude({from, text});
});
});
错误:
priya@priya-pro:~/node-chat-app$ npm 测试
node-chat-app@1.0.0 test /home/priya/node-chat-app
mocha server/**/*.test.js
generateMessage
1) should generate correct message object
0 次通过(12 毫秒)
1 失败
1) 生成消息
应该生成正确的消息对象:
TypeError: expect(...).toBeA 不是一个函数
在 Context.it (server/utils/message.test.js:12:31)
npm 错误!测试失败。有关详细信息,请参阅上文。
帮帮我...
来自 v21+ 的 expect library has been donated to jest 的所有权。从那时起,一些方法名称及其功能已更改。对代码进行以下修改将有助于解决问题。
var expect = require('expect');
var {generateMessage} = require('./message');
describe('generateMessage', () => {
it('should generate correct message object', () => {
var from = 'Jen';
var text = 'Some message';
var message = generateMessage(from, text);
expect(typeof message.createdAt).toBe('number');
expect(message).toMatchObject({from, text});
});
});
以类似的方式,我犯了一个基本的语法错误,我的终端显示:
TypeError: sum(...).toBe 不是函数。
这是我在 main.js 文件和 main.test.js 文件中使用的代码:
↓ main.js ↓
function sum(a, b){
return a + b
}
module.exports = sum;
↓ main.test.js ↓
const sum = require('./main')
test('adds two numbers together', ()=>{
expect(sum(2,2).toBe(4))
})
我一直认为我的 module.exports/require 语法有问题。经过多次尝试,我一丝不苟地按照 Jest.js 教程 - 单元测试通过了!然后我将它与我的非功能副本进行比较 - 我在我的 main.test.js 文件中发现了错误:
main.test.js
expect(sum(2,2).toBe(4))
需要的是:
expect(sum(2,2)).toBe(4)
注意括号的位置——我没有将 .toBe() 匹配器链接到 expect() 函数,而是无意中将 .toBe() 与我的 sum(2,2) 一起传递到 expect() 函数值,导致:TypeError: sum(...).toBe is not a function !
事后看来这是一个非常明显的错误,但希望这对以后的人有所帮助! :-)
这是我的 message.test.js 文件。
var expect = require('expect');
var {generateMessage} = require('./message');
describe('generateMessage', () => {
it('should generate correct message object', () => {
var from = 'Jen';
var text = 'Some message';
var message = generateMessage(from, text);
expect(message.createdAt).toBeA('number');
expect(message).toInclude({from, text});
});
});
错误: priya@priya-pro:~/node-chat-app$ npm 测试
node-chat-app@1.0.0 test /home/priya/node-chat-app mocha server/**/*.test.js generateMessage 1) should generate correct message object
0 次通过(12 毫秒) 1 失败
1) 生成消息 应该生成正确的消息对象: TypeError: expect(...).toBeA 不是一个函数 在 Context.it (server/utils/message.test.js:12:31)
npm 错误!测试失败。有关详细信息,请参阅上文。
帮帮我...
来自 v21+ 的 expect library has been donated to jest 的所有权。从那时起,一些方法名称及其功能已更改。对代码进行以下修改将有助于解决问题。
var expect = require('expect');
var {generateMessage} = require('./message');
describe('generateMessage', () => {
it('should generate correct message object', () => {
var from = 'Jen';
var text = 'Some message';
var message = generateMessage(from, text);
expect(typeof message.createdAt).toBe('number');
expect(message).toMatchObject({from, text});
});
});
以类似的方式,我犯了一个基本的语法错误,我的终端显示:
TypeError: sum(...).toBe 不是函数。
这是我在 main.js 文件和 main.test.js 文件中使用的代码:
↓ main.js ↓
function sum(a, b){
return a + b
}
module.exports = sum;
↓ main.test.js ↓
const sum = require('./main')
test('adds two numbers together', ()=>{
expect(sum(2,2).toBe(4))
})
我一直认为我的 module.exports/require 语法有问题。经过多次尝试,我一丝不苟地按照 Jest.js 教程 - 单元测试通过了!然后我将它与我的非功能副本进行比较 - 我在我的 main.test.js 文件中发现了错误:
main.test.js
expect(sum(2,2).toBe(4))
需要的是:
expect(sum(2,2)).toBe(4)
注意括号的位置——我没有将 .toBe() 匹配器链接到 expect() 函数,而是无意中将 .toBe() 与我的 sum(2,2) 一起传递到 expect() 函数值,导致:TypeError: sum(...).toBe is not a function !
事后看来这是一个非常明显的错误,但希望这对以后的人有所帮助! :-)