最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

“instanceof”的右侧不可调用超测试

网站源码admin41浏览0评论

“instanceof”的右侧不可调用超测试

“instanceof”的右侧不可调用超测试

我正在使用 jest 和 supertest 库进行 API 测试以进行集成测试,对于后端,我正在使用 Node.js 和 MongoDB 来创建/更新/删除/获取书籍集合。使用 get 请求的测试效果很好,但是当涉及到 post 或 put 请求时,我收到错误消息“'instanceof' 的右侧不可调用”。 这是我的代码:

控制器

const bookServices = require("../services/services.js")
const BookModel = require('../model/model.js')

const updateBook = async (req, res) => {
    const {id} = req.params
    if(!id) {
    return res.status(404).json({message: "this book doesn't exist"})
    }
    const updatedObject = await bookServices.updateBook(id, req.body)
    res.json(await bookServices.getBook(id))
}

module.exports = {updateBook}

服务

const BookModel = require('../model/model.js')

const updateBook = (id, data) => {
return BookModel.findByIdAndUpdate(id, data)
}

module.exports = { updateBook}

路线

const express = require("express")
const { updateBook} = require('../controller/bookController')
const routes = express.Router()

routes.put("/updateBook/:id", updateBook)

module.exports = routes

型号

const mongoose = require ("mongoose")
const {Schema, model} = mongoose

const BookSchema = new Schema(
{
    title: {
        type: String,
        require: true
    },
    description: String,
    price: {
        type: Number,
        default: 0
    }
}, { collection : 'Book' })

const BookModel = model("Book", BookSchema )

module.exports = BookModel

测试文件

const server = require('./server.js')
const mongoose= require('./dataBaseConfig.js')
const request = require('supertest')

describe("update book" , () => {
    it("should update the book's title", async ()=> {
    const {id} = await bookServices.createBook({title: "Harry Potter"})
    const res = await request(server).put(`/api/updateBook/${id}`)
    .send({title: "the master and Margarita"})
    expect(res.body).toMatchObject({title: "The master and Margarita"})
    }
    )
})
回答如下:
发布评论

评论列表(0)

  1. 暂无评论