我有一个应用程序,可以记录访问url的次数。点票是在Redis上完成的。我使用的是redis-mock,它在内存中模拟像INCR这样的命令。 下面的测试访问页面3次,并期望响应对象将current报告为3 let app = require('./app');
const supertest = require("supertest");
jest.mock('redis', () => jest.requireActual('redis-mock'));
/* Preceeded by the exact same
我想打印或控制台日志下面有关Supertest失败的详细信息,预期以下请求的失败成功不需要打印任何成功的东西
const result = await request(dummy_url).get("repos/Microsoft/TypeScript/pulls")
.set("user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:87.0) Gecko/20100101 Firefox/87.0")
.expect(200)
.then
我目前正在制作一个API的类型记录,节点,表达和测试与jest和supertest。在使用Javascript时,我没有问题,但最近我将项目文件从JS更改为TS (包括测试文件),当我开始测试时,我在supertest request部件上的所有测试套件中出现了下面的错误,这是我开始测试时终端上的测试套件之一。
TypeError: app.address is not a function
37 | it("should return 400 if email is invalid", async () => {
38 | const
我正在尝试测试一个使用express和mongoose构建的REST API,我正在使用jest和supertest进行http调用;而且我对使用javascript进行测试还比较陌生。
在测试创建url时,我不想确保仅使用req.body对象调用实例化,但我不确定如何做到这一点,在阅读了大量关于模拟对象和存根之间的差异以及一些Jest文档后,我最后一次尝试是这样的:
test('Should instantiate the model using req.body', done => {
const postMock = jest.fn();
const t
我正在学习如何使用这个NodeJS和MongoDB来创建RestAPI,从他们提供的回购中可以得到很多更新,我进一步修改了它,用Jest和SuperTest完成了Mongo服务器的UnitTesting。
在添加我的回购之前,我对回购所做的主要修改是:
将侦听逻辑移动到start.js,而在package.json中将此作为主文件
start.js
const { app } = require("./index");
// Setup server port
var port = process.env.PORT || 8080;
app.listen(port, fun
我正在尝试通过jest和supertest在快递中实现TESTCODE。
但是,当我在vsc终端中键入npm test时,会出现以下问题:
“.env”文件已经有了私有数据。所以,当我尝试注册和登录时,它是有效的,但是当我做npm test时,它就产生了问题。
我想可能是因为开玩笑吧?无法正确读取.env.文件。
vsc终端
env-cmd ./.env jest --watch
./.env: line 1: DATABASE_USERNAME: command not found
./.env: line 2: DATABASE_PASSWORD: command not found
.
我不调用外部API端点,我只想用supertest/jest测试我自己的本地端点。设置超时显然不能解决我的问题,因为这是一个非常简单的请求。我是按这个要求打电话来的,所以我不明白这里出了什么问题。
router.get('/photo', Photo.getFromRequest, function (request, res) {
// making this simple just for the first step
return res.status(200).send
})
jest.mock('../models/photo', () =&g
因此,我试图在我的测试文件中使用一些全局变量,所以我进行了大量的研究,并设法在所有测试文件之前运行一个jest安装文件来初始化全局变量,这是setup.ts文件。
import app from'../src/express';
import request from 'supertest';
//Set Express app as global
global.app = request(app);
//TODO: Add global data
它运行得很好,但是自动完成在我的测试文件中不起作用,所以在搜索问题之后,我发现我不得不将新添加的变量合并
好的,我一直在使用jest和supertest为我的node.js应用程序编写测试,对于第一个测试套件之后的每个测试套件,我都会收到一个错误Error: listen EADDRINUSE: address already in use :::3000,我相信这是因为它试图在每个测试文件上启动服务器(我有多个测试文件*.test.js在/tests中) 在每个测试文件中描述测试之前的顶部如下所示 const request = require("supertest");
const app = require("../index.js"); // the ex
我试图在nodejs上测试我的图像上传端点,而返回错误的是API key must be provided。虽然图像上传在客户端运行良好,但它可以看到存储在API KEY文件中的.env。然而,jest和supertest似乎并没有看到这一点。我查过互联网,找不到任何解决办法。在jest和supertest的nodejs测试中,是否有办法通过nodejs?这是我的测试代码。
//test upload image
describe('Test POST /api/v1/posts/uploadImage', ()=>{
const name = (__dirname +
在我使用Supertest和MSW进行的测试中,我注意到,尽管它们仍然成功通过,但MSW已经开始显示对Supertest正在发出的请求的警告。例如(请参阅文章末尾要复制的文件):
$ npm t
> msw-example@1.0.0 test
> jest
PASS ./app.test.js
password API
✓ exposes a number of words (76 ms)
console.warn
[MSW] Warning: captured a request without a matching request handl