当前位置: 首页 > 知识库问答 >
问题:

应用程序/vnd超级测试请求中的空体

常元章
2023-03-14

我很难在超级测试中发送请求主体。我已经阅读了其他问题的解决方案,这些问题都归咎于主体解析器的配置不当,但这些答案都是指自定义数据类型。(在此使用supertest和Node.js的测试中,res.body为空)。我这样配置主体解析器:

var bodyParser = require('body-parser');
app.use(bodyParser.json({ limit: '50mb', type: 'application/vnd.api+json' }));
app.use(bodyParser.urlencoded({limit: '50mb', extended: true}));

我提供的帖子的解决方案说“超级测试使用此文件来确定您是否发送json。”我的内容类型实际上列在那里,所以我不明白为什么这应该是个问题。

我试图发布这样的请求

it ('creates user', function (done) {
    var user = {
      firstname: 'Joe',
      lastname: 'JoeJoe',
      email: 'joe@joe.com',
      password: 'spartacus',
    };

    request(app)
      .post('/api/users')
      .send(user)
      .expect(200)
      .expect('Sent email to joe@joe.com', done)
  });
});

我使用以下行导入我的应用程序:

var app = require('../server.js');

其中服务器。js完全配置我的应用程序。supertest是否支持此应用程序类型?是否有办法强制用户数据作为req的一部分被注意到。身体

共有1个答案

温凯
2023-03-14

我相信,通过将您的post请求的内容类型标题设置为应用程序/vnd,可以解决这个问题。api json。您可以在supertest/superagent中执行以下操作:

it ('creates user', function (done) {
    var user = {
      firstname: 'Joe',
      lastname: 'JoeJoe',
      email: 'joe@joe.com',
      password: 'spartacus',
    };

    request(app)
      .post('/api/users')
      .set('Content-Type', 'application/vnd.api+json')
      .send(user)
      .expect(200)
      .expect('Sent email to joe@joe.com', done)
  });
});
 类似资料:
  • 问题内容: 我正在使用Passport.js进行身份验证(本地策略),并通过Mocha和Supertest进行测试。 如何使用Supertest创建会话并发出经过身份验证的请求? 问题答案: 您应该为此使用超级代理。它是较低级别的模块,由。看一看持久代理: 现在,您可以用来发出经过身份验证的请求。

  • 本文向大家介绍使用Odata调用SAPUI5应用程序中的网关时请求超时,包括了使用Odata调用SAPUI5应用程序中的网关时请求超时的使用技巧和注意事项,需要的朋友参考一下 由于您已经尝试了不同的参数,因此建议您检查ICM和Web Dispatcher的超时选项。 在SAP中,您拥有具有不同超时的ICM和Web Dispatcher,这些超时由不同的参数控制: 打开连接的超时:icm / con

  • 我试图以一种干净的方式构建应用程序的体系结构。我想我可以在Netty中做到这一点,因为它是一个著名的java网络框架选项。 我有连接到Netty服务器的设备(通过GPRS的TCP)。假设它们都是永久连接的(保持存活),有几种情况我需要用这个架构来描述: 情况1:设备可以向Netty发送消息,并且Netty响应该消息 情况2:设备可以向Netty发送消息,并且Netty对该消息做出响应,但是Nett

  • 我正在用iOS开发一个应用程序。对于我的开发,我使用Xcode beta7。以前,我用iOS 8.4在手机上测试我的应用程序,升级到iOS 9后,我无法在手机上安装相同的应用程序。请给我一些建议。非常感谢!

  • 我正在试着在Proguard打开的情况下测试Android应用程序的发布版本。我已经为测试依赖项创建了其他Proguard规则文件,该文件包含在发布规则文件中。 一切编译都很好,但在运行时失败。 我正在使用Espresso进行测试,仪表运行器在中定义 是否有机会为预发布版本运行测试?我从五月份就找到了这个话题,看起来这是不可能的。对我来说,这看起来只是错误的Proguard配置(缺少方法),但这行

  • 我正在开发一个将在Kiosk模式下运行的应用程序。在这个应用程序中,如果用户在5分钟内没有在应用程序中做任何事情,应用程序将显示一个屏幕保护程序,这是应用程序的徽标。 我的问题是,如何在5分钟内检测到空闲代码?