10.1 Интеграционные тесты и тестирование API
Интеграционные тесты проверяют взаимодействие между модулями и компонентами. Для тестирования API используйте библиотеки, такие как Supertest.
Пример интеграционного теста с Supertest:
import request from 'supertest';
import app from '../src/app';
describe('GET /hello', () => {
it('should return a greeting message', async () => {
const response = await request(app).get('/hello');
expect(response.status).toBe(200);
expect(response.body.message).toBe('Hello, World!');
});
});
10.2 Энд-ту-энд тестирование
Энд-ту-энд тесты проверяют приложение целиком, включая взаимодействие с внешними системами и пользователем. Используйте инструменты, такие как Cypress или Puppeteer.
Пример использования Cypress для энд-ту-энд тестирования:
1. Установите Cypress:
npm install --save-dev cypress
2. Создайте файл конфигурации Cypress (cypress.json):
{
"baseUrl": "http://localhost:3000"
}
3. Напишите тест:
describe('Homepage', () => {
it('should display welcome message', () => {
cy.visit('/');
cy.contains('Welcome to My App');
});
});
4. Запустите Cypress:
npx cypress open
10.3 Линтинг и статический анализ
Используйте линтеры и инструменты статического анализа для обнаружения ошибок и поддержания качества кода. ESLint с плагином для TypeScript поможет обнаружить потенциальные проблемы на этапе разработки.
Пример конфигурации ESLint для TypeScript:
1. Установите зависимости:
npm install --save-dev eslint @typescript-eslint/parser @typescript-eslint/eslint-plugin
2. Создайте файл конфигурации .eslintrc.json:
{
"parser": "@typescript-eslint/parser",
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/recommended"
],
"rules": {
"semi": ["error", "always"],
"quotes": ["error", "single"]
}
}
3. Добавьте скрипт для запуска ESLint в package.json:
"scripts": {
"lint": "eslint 'src/**/*.{js,ts}'"
}
4. Запустите линтинг:
npm run lint
10.4 Использование Source Maps для отладки
Sourcemaps помогают отслеживать ошибки и отлаживать TypeScript код, отображая исходные файлы в инструментах разработчика. Убедитесь, что вы включили генерацию sourcemaps в конфигурации TypeScript.
Пример конфигурации tsconfig.json для включения sourcemaps:
{
"compilerOptions": {
"sourceMap": true,
"outDir": "./dist",
"target": "ES6",
"module": "commonjs",
"strict": true,
"esModuleInterop": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true
},
"include": ["src"],
"exclude": ["node_modules"]
}
10.5 Использование инструмента для отладки в IDE
Использование встроенных инструментов отладки в IDE, таких как Visual Studio Code, значительно упрощает процесс отладки. Настройте конфигурацию отладки и используйте точки остановки (breakpoints) для анализа кода.
Пример конфигурации отладки для Visual Studio Code:
Создайте файл конфигурации .vscode/launch.json:
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch Program",
"skipFiles": ["<node_internals>/**"],
"program": "${workspaceFolder}/src/app.ts",
"preLaunchTask": "tsc: build - tsconfig.json",
"outFiles": ["${workspaceFolder}/dist/**/*.js"]
}
]
}
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ