试图在我的 nodejs api 中运行 Jest/Supertest,但不断收到 TypeError :“app.address is not a function”

问题描述

我正在尝试开始对我的 nodejs api 进行集成/单元测试,但我无法通过 supertest 正确连接到我的 app.js 文件

下面的代码写在我的 main.test.js 文件

const app = require('../app')
const supertest = require('supertest');
const request = supertest(app)

it('posts color',async () => {
    await request.post('/postColor')
    .send({
        "Color": "Green",}).expect(201)
})

下面是我的 app.js 文件

import express from 'express';
const app = express();

export default app;

我将 index.js 文件分解为 app.js 和 index.js 文件

我的 index.js 从 app.js 导入应用程序并将其设置为侦听我需要的任何端口。 我的 main.test.js 文件从 app.js 导入 app 并按照 supertest 使用它,如上图所示。

我不断收到以下错误

类型错误:app.address 不是函数

  4 |
  5 | it('posts color',async () => {
> 6 |     await request.post('/postColor')
    |                   ^

解决方法

我通过在 main.test.js 文件中添加以下内容解决了这个问题:

const app = require('../app').default

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...