【发布时间】:2019-09-21 23:36:15
【问题描述】:
我正在尝试使用 Jest 对此 Nodejs API 运行测试。虽然我运行应用程序时一切正常,但它失败并返回错误
TypeError:无法读取未定义的属性“存储”
测试代码:
const request = require('supertest')
const server = require('../../server')
const { User } = require('../../app/models/User')
describe('User', () => {
test('should create user', async () => {
const user = await User.store({
name: 'Marcelo',
email: 'marcelo@vuttr.com',
password: '123456'
})
const response = await request(server)
.post('/user')
.send({
name: user.name,
email: user.email,
password: user.password
})
expect(response.status).toBe(200)
})
})
控制器:
const User = require('../models/User')
class UserController {
async store (req, res) {
const { email } = req.body
if (await User.findOne({ email })) {
return res.status(400).json({ error: 'User already exists' })
}
const user = await User.create(req.body)
return res.json(user)
}
}
module.exports = new UserController()
更多详情,我分享this project in github。
【问题讨论】:
-
您不应该导入
UserController并在其上调用.store()而不是User模型吗?