gpt4 book ai didi

node.js - 如何在 mocha 和 mongoDB 中使用 chai 向 Node 发出发布请求

转载 作者:可可西里 更新时间:2023-11-01 09:06:15 26 4
gpt4 key购买 nike

  1. 如何在 mocha 和 mongoDB 中使用 chai 向 Node 发出 POST 请求。我有一个包含我的获取请求和发布请求的测试文件。我下面的代码等于我的 get 请求,它通过了我为其设置的 1 次测试,但是我在创建我的发布请求时遇到了问题,我不明白我应该做什么。获取请求:

    const chai = require('chai');
    const expect = chai.expect;
    const chaiHttp = require('chai-http')

    chai.use(chaiHttp)

    describe('site', () => { // Describe what you are testing
    it('Should have home page', (done) => { // Describe
    // In this case we test that the home page loads
    chai.request('localhost:3000')
    chai.get('/')
    chai.end((err, res) => {
    if (err) {
    done(err)
    }
    res.status.should.be.equal(200)
    done() // Call done if the test completed successfully.
    })
    })
    })

  1. 到目前为止,这是我的发布/创建路线:

  2. 这个请求的伪代码是:

  3. //现在有多少帖子?
  4. //请求创建另一个
  5. //检查数据库中是否还有一篇文章
  6. //检查是否响应成功

  7. POST 请求:

    const chai = require('chai')
    const chaiHttp = require('chai-http')
    const should = chai.should()
    chai.use(chaiHttp)
    const Post = require('../models/post');

    describe('Posts', function() {
    this.timeout(10000);
    let countr;

    it('should create with valid attributes at POST /posts', function(done) {
    // test code
    Post.find({}).then(function(error, posts) {
    countr = posts.count;

    let head = {
    title: "post title",
    url: "https://www.google.com",
    summary: "post summary"
    }
    chai.request('localhost:3000')
    chai.post('/posts').send(head)
    chai.end(function(error, res) {
    //console.log('success')
    })
    }).catch(function(error) {
    done(error)
    })
    });
    })
  8. 如有任何关于我做错的指示,我们将不胜感激。我对这个错误的输出是:

1) 帖子 应该在 POST/posts 返回一个新帖子: 错误:超时超过 10000 毫秒。对于异步测试和 Hook ,确保调用“done()”;如果返回一个 Promise,请确保它已解析。

npm 错误!代码生命周期错误!错误号 1错误! reddit_clone@1.0.0 测试:mocha

最佳答案

测试超时,因为请求从未发送过。

基于docs我没有看到任何迹象表明您可以通过简单地将数据传递到 post 函数来执行发布。这里的图书馆需要做出很多假设,例如序列化类型、 header 等

使用 JSON 负载执行 POST 请求的正确方法是:

chai
.request('http://localhost:3000')
.post('/posts')
.send(head)
.end((err, res) => {
...
});

关于node.js - 如何在 mocha 和 mongoDB 中使用 chai 向 Node 发出发布请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48415278/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com