Рубрики
Без рубрики

Письменные тесты для загрузки изображения / файла в Nodejs.

Эта статья демонстрирует, как загружать один и несколько файлов в Nodejs.

Автор оригинала: Seun Somefun.

Письменные тесты, как правило, для письменного кода является частью обеспечения качества. Тесты – это набор письменных кода против бизнес-логики, чтобы увидеть, как логика отображается против определенных входов и условий.

В этом уроке мы воспользуемся Mocha, Chai и Chai-http, чтобы запустить тесты. Код для этого проекта можно найти здесь Отказ В папке тестов внутри SRC есть пара испытаний/люксов в нем:

import chai from 'chai';
import fs from 'fs';
import chaiHttp from 'chai-http';
import app from '../app';


const { expect } = chai;


chai.use(chaiHttp);

describe('Test for user endpoint', () => {
    describe('Test for POST route', () => {
        it('should return 201 and create user with single image upload', async() => {
            const res = await chai.request(app)
                .post('/users')
                .set('content-type', 'multipart/form-data')
                .field('email', 'myemail@gmail.com')
                .field('firstname', 'slim')
                .field('lastname', 'shady')
                .attach('image', fs.readFileSync(`${__dirname}/file.png`), 'tests/file.png')
                expect(res.status).to.equal(201);
        })

        //anoter post test
        it('should return 201 and create user with multiple image upload', async() => {
            const res = await chai.request(app)
                .post('/users')
                .set('content-type', 'multipart/form-data')
                .field('email', 'busybody@gmail.com')
                .field('firstname', 'busy')
                .field('lastname', 'body')
                .attach('image', fs.readFileSync(`${__dirname}/file.png`), 'tests/file.png')
                .attach('image', fs.readFileSync(`${__dirname}/chris1.pdf`), 'tests/chris1.pdf')
                expect(res.status).to.equal(201);
        })
    })
})

В приведенном выше мы импортировали пару пакетов, Chai для утверждения, FS (файл узла Sysytem), Chai-Http для тестирования интеграции и файл приложения, где все импорт консолирован в приложении Nodejs, мы тогда пошли дальше, чтобы использовать Chai -HTTP через chai.use () Отказ Достойно отметить, что первый Это Блок обслуживает для одной загруженной загрузки файла, в то время как вторая привлекает для нескольких файлов загрузки. Обратите внимание на Установить , поле и прикрепить Свойства chai.request (приложение) объект.

  • Мультипартные/формы-данные Используется, потому что он поддерживается всеми браузерами (и, конечно, файлы будут загружены из клиента/интерфейса).
  • В Поле () Метод, мы устанавливаем Ключевое значение пары как аргументы.
  • Прикрепить () Метод принимает два аргумента, имя файлового поля и сам путь файла встроен в fs.readfilesync () метод.

Несколько файлов, как во втором Это Блок может быть загружен с помощью Прикрепить () на разных линиях.

Ниже приведен результат, когда тесты в проекте RAN:

Снимок экрана 2020-08-06 на 1.10.34 PM.PNG
Снимок экрана 2020-08-06 в 1.10.43 PM.PNG

Дополнительные результаты – это операторы журнала, добавленные к тестам, чтобы выяснить, какие тесты возвращаются против кода.

Целесообразно писать тесты (единицу, интеграцию и E2E) для всех проектов, чтобы гарантировать качество и обеспечить, чтобы добавить дополнительные функции не нарушают существующие функционирование.