Автор оригинала: 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:
Дополнительные результаты – это операторы журнала, добавленные к тестам, чтобы выяснить, какие тесты возвращаются против кода.
Целесообразно писать тесты (единицу, интеграцию и E2E) для всех проектов, чтобы гарантировать качество и обеспечить, чтобы добавить дополнительные функции не нарушают существующие функционирование.