Anonymous
Получение ошибки при попытке проверить мой бэкэнд API
Сообщение
Anonymous » 12 сен 2025, 23:53
Я в настоящее время пишу бэкэнд -тесты как часть курса Fullstackopen. У меня есть 2 отдельных тестовых файла: один для тестирования списка (фиктивные данные), а другой для тестирования API. В то время как тесты списка работают, тестер API просто мгновенно бросает ошибку. Это журнал: < /p>
Код: Выделить всё
file:///C:/Users/Edwar/WebstormProjects/fullstackopen/Part4/bloglist/tests/blog_api.test.js:1
const { test, describe} = require('node:test')
^
ReferenceError: require is not defined in ES module scope, you can use import instead
at file:///C:/Users/Edwar/WebstormProjects/fullstackopen/Part4/bloglist/tests/blog_api.test.js:1:27
at ModuleJob.run (node:internal/modules/esm/module_job:274:25)
at async onImport.tracePromise.__proto__ (node:internal/modules/esm/loader:644:26)
at async asyncRunEntryPointWithESMLoader (node:internal/modules/run_main:117:5)
Node.js v22.16.0
✖ tests\blog_api.test.js (47.9562ms)
✔ dummy function (0.8653ms)
▶ total likes
✔ total likes (0.1556ms)
✔ total likes (0.3705ms)
▶ favorite blog
✔ most liked (0.4298ms)
✔ favorite blog (1.1711ms)
▶ most blogs
✔ best author (0.5545ms)
✔ most blogs (0.7417ms)
▶ most likes
✔ most liked author (0.3022ms)
✔ most likes (0.5679ms)
ℹ tests 6
ℹ suites 4
ℹ pass 5
ℹ fail 1
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 83.8575
✖ failing tests:
test at tests\blog_api.test.js:1:1
✖ tests\blog_api.test.js (47.9562ms)
'test failed'
< /code>
[структура проекта] [1] < /p>
{
"name": "bloglist",
"version": "1.0.0",
"main": "app.js",
"scripts": {
"start": "cross-env NODE_ENV=production node index.js",
"dev": "cross-env NODE_ENV=development node --watch index.js",
"test": "cross-env NODE_ENV=test node --test"
},
"author": "",
"license": "ISC",
"description": "",
"dependencies": {
"cors": "^2.8.5",
"cross-env": "^10.0.0",
"dotenv": "^17.2.2",
"express": "^5.1.0",
"mongoose": "^8.18.0"
},
"devDependencies": {
"nodemon": "^3.1.10",
"supertest": "^7.1.4"
}
}
< /code>
test_helper.test.js:
Код: Выделить всё
const {test, describe} = require('node:test')
const assert = require('node:assert')
const listHelper = require('../utils/list_helper')
test('dummy function', () => {
const blogs = []
const result = listHelper.dummy()
assert.strictEqual(result, 1)
})
describe('total likes', () => {
test('total likes', () => {
const likes = listHelper.totalLikes(listHelper.initialBlogs)
assert.strictEqual(likes, 12)
})
})
describe('favorite blog', () => {
test('most liked', () => {
const favorite = listHelper.favoriteBlog(listHelper.initialBlogs)
assert.deepStrictEqual(favorite, listHelper.initialBlogs[0])
})
})
describe('most blogs', () => {
test('best author', () => {
const topAuthor = listHelper.mostBlogs(listHelper.initialBlogs)
assert.deepStrictEqual(topAuthor, {author: "Michael Chan", blogs: 1})
})
})
describe('most likes', () => {
test('most liked author', () => {
const bestAuthor = listHelper.mostLikes(listHelper.initialBlogs)
assert.deepStrictEqual(bestAuthor, { author: 'Michael Chan', likes: 7 })
})
}
< /code>
blog_api.test.js:
Код: Выделить всё
const { test, describe} = require('node:test')
const supertest = require('supertest')
const mongoose = require('mongoose')
const app = require('../app')
describe('Blog api', () => {
test('GET blogs', async () => {
const response = await supertest(app)
.get('/api/blogs')
.expect(200)
.expect('Content-Type', /application\/json/)
console.log(response.body)
})
})
await mongoose.connection.close()
< /code>
app.js:
Код: Выделить всё
const express = require('express')
const mongoose = require('mongoose')
const {MONGODB_URI} = require("./utils/config");
const logger = require("./utils/logger");
const middleware = require("./utils/middleware");
const blogsRouter = require("./controllers/blogs");
const app = express();
logger.info("Connecting to the database...", MONGODB_URI)
mongoose.connect(MONGODB_URI)
.then(() => {
console.log("Connected to the database...")
}).catch((error) => {
logger.error("An error occurred with the database, ", error);
})
app.use(express.json());
app.use(express.static('dist'));
app.use(middleware.requestLogger);
app.use('/api/blogs', blogsRouter);
app.use(middleware.unknownEndpoint);
app.use(middleware.errorHandler);
module.exports = app;
< /code>
When I try to add beforeAll, в конце концов Методы из узла: тест библиотека, они также никогда не определены, хотя у меня установлен Node V22.
Подробнее здесь:
https://stackoverflow.com/questions/797 ... pi-backend
1757710388
Anonymous
Я в настоящее время пишу бэкэнд -тесты как часть курса Fullstackopen. У меня есть 2 отдельных тестовых файла: один для тестирования списка (фиктивные данные), а другой для тестирования API. В то время как тесты списка работают, тестер API просто мгновенно бросает ошибку. Это журнал: < /p> [code]file:///C:/Users/Edwar/WebstormProjects/fullstackopen/Part4/bloglist/tests/blog_api.test.js:1 const { test, describe} = require('node:test') ^ ReferenceError: require is not defined in ES module scope, you can use import instead at file:///C:/Users/Edwar/WebstormProjects/fullstackopen/Part4/bloglist/tests/blog_api.test.js:1:27 at ModuleJob.run (node:internal/modules/esm/module_job:274:25) at async onImport.tracePromise.__proto__ (node:internal/modules/esm/loader:644:26) at async asyncRunEntryPointWithESMLoader (node:internal/modules/run_main:117:5) Node.js v22.16.0 ✖ tests\blog_api.test.js (47.9562ms) ✔ dummy function (0.8653ms) ▶ total likes ✔ total likes (0.1556ms) ✔ total likes (0.3705ms) ▶ favorite blog ✔ most liked (0.4298ms) ✔ favorite blog (1.1711ms) ▶ most blogs ✔ best author (0.5545ms) ✔ most blogs (0.7417ms) ▶ most likes ✔ most liked author (0.3022ms) ✔ most likes (0.5679ms) ℹ tests 6 ℹ suites 4 ℹ pass 5 ℹ fail 1 ℹ cancelled 0 ℹ skipped 0 ℹ todo 0 ℹ duration_ms 83.8575 ✖ failing tests: test at tests\blog_api.test.js:1:1 ✖ tests\blog_api.test.js (47.9562ms) 'test failed' < /code> [структура проекта] [1] < /p> { "name": "bloglist", "version": "1.0.0", "main": "app.js", "scripts": { "start": "cross-env NODE_ENV=production node index.js", "dev": "cross-env NODE_ENV=development node --watch index.js", "test": "cross-env NODE_ENV=test node --test" }, "author": "", "license": "ISC", "description": "", "dependencies": { "cors": "^2.8.5", "cross-env": "^10.0.0", "dotenv": "^17.2.2", "express": "^5.1.0", "mongoose": "^8.18.0" }, "devDependencies": { "nodemon": "^3.1.10", "supertest": "^7.1.4" } } < /code> test_helper.test.js[/code]: [code]const {test, describe} = require('node:test') const assert = require('node:assert') const listHelper = require('../utils/list_helper') test('dummy function', () => { const blogs = [] const result = listHelper.dummy() assert.strictEqual(result, 1) }) describe('total likes', () => { test('total likes', () => { const likes = listHelper.totalLikes(listHelper.initialBlogs) assert.strictEqual(likes, 12) }) }) describe('favorite blog', () => { test('most liked', () => { const favorite = listHelper.favoriteBlog(listHelper.initialBlogs) assert.deepStrictEqual(favorite, listHelper.initialBlogs[0]) }) }) describe('most blogs', () => { test('best author', () => { const topAuthor = listHelper.mostBlogs(listHelper.initialBlogs) assert.deepStrictEqual(topAuthor, {author: "Michael Chan", blogs: 1}) }) }) describe('most likes', () => { test('most liked author', () => { const bestAuthor = listHelper.mostLikes(listHelper.initialBlogs) assert.deepStrictEqual(bestAuthor, { author: 'Michael Chan', likes: 7 }) }) } < /code> blog_api.test.js[/code]: [code]const { test, describe} = require('node:test') const supertest = require('supertest') const mongoose = require('mongoose') const app = require('../app') describe('Blog api', () => { test('GET blogs', async () => { const response = await supertest(app) .get('/api/blogs') .expect(200) .expect('Content-Type', /application\/json/) console.log(response.body) }) }) await mongoose.connection.close() < /code> app.js[/code]: [code]const express = require('express') const mongoose = require('mongoose') const {MONGODB_URI} = require("./utils/config"); const logger = require("./utils/logger"); const middleware = require("./utils/middleware"); const blogsRouter = require("./controllers/blogs"); const app = express(); logger.info("Connecting to the database...", MONGODB_URI) mongoose.connect(MONGODB_URI) .then(() => { console.log("Connected to the database...") }).catch((error) => { logger.error("An error occurred with the database, ", error); }) app.use(express.json()); app.use(express.static('dist')); app.use(middleware.requestLogger); app.use('/api/blogs', blogsRouter); app.use(middleware.unknownEndpoint); app.use(middleware.errorHandler); module.exports = app; < /code> When I try to add beforeAll[/code], в конце концов Методы из узла: тест библиотека, они также никогда не определены, хотя у меня установлен Node V22. Подробнее здесь: [url]https://stackoverflow.com/questions/79763329/getting-error-while-trying-to-test-my-api-backend[/url]