JavaRush /Курсы /Модуль 2: Fullstack /Рекомендации по тестированию, часть 2

Рекомендации по тестированию, часть 2

Модуль 2: Fullstack
9 уровень , 9 лекция
Открыта

10.1 Интеграционные тесты и тестирование API

Интеграционные тесты проверяют взаимодействие между модулями и компонентами. Для тестирования API используйте библиотеки, такие как Supertest.

Пример интеграционного теста с Supertest:

TypeScript
    
      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:

Terminal
    
      npm install --save-dev cypress
    
  

2. Создайте файл конфигурации Cypress (cypress.json):

JSON
    
      {
        "baseUrl": "http://localhost:3000"
      }
    
  

3. Напишите тест:

JavaScript
    
      describe('Homepage', () => {
        it('should display welcome message', () => {
          cy.visit('/');
          cy.contains('Welcome to My App');
        });
      });
    
  

4. Запустите Cypress:

Terminal
    
      npx cypress open
    
  

10.3 Линтинг и статический анализ

Используйте линтеры и инструменты статического анализа для обнаружения ошибок и поддержания качества кода. ESLint с плагином для TypeScript поможет обнаружить потенциальные проблемы на этапе разработки.

Пример конфигурации ESLint для TypeScript:

1. Установите зависимости:

Terminal
    
      npm install --save-dev eslint @typescript-eslint/parser @typescript-eslint/eslint-plugin
    
  

2. Создайте файл конфигурации .eslintrc.json:

JSON
    
      {
        "parser": "@typescript-eslint/parser",
        "extends": [
          "eslint:recommended",
          "plugin:@typescript-eslint/recommended"
        ],
        "rules": {
          "semi": ["error", "always"],
          "quotes": ["error", "single"]
        }
      }
    
  

3. Добавьте скрипт для запуска ESLint в package.json:

JSON
    
      "scripts": {
        "lint": "eslint 'src/**/*.{js,ts}'"
      }
    
  

4. Запустите линтинг:

Terminal
    
      npm run lint
    
  

10.4 Использование Source Maps для отладки

Sourcemaps помогают отслеживать ошибки и отлаживать TypeScript код, отображая исходные файлы в инструментах разработчика. Убедитесь, что вы включили генерацию sourcemaps в конфигурации TypeScript.

Пример конфигурации tsconfig.json для включения sourcemaps:

JSON
    
      {
        "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:

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"]
          }
        ]
      }
    
  
3
Задача
Модуль 2: Fullstack, 9 уровень, 9 лекция
Недоступна
Интеграционный тест API
Интеграционный тест API
3
Задача
Модуль 2: Fullstack, 9 уровень, 9 лекция
Недоступна
Энд-ту-энд тест с Cypress
Энд-ту-энд тест с Cypress
3
Задача
Модуль 2: Fullstack, 9 уровень, 9 лекция
Недоступна
Настройка ESLint для TypeScript
Настройка ESLint для TypeScript
3
Задача
Модуль 2: Fullstack, 9 уровень, 9 лекция
Недоступна
Генерация sourcemaps в TypeScript
Генерация sourcemaps в TypeScript
3
Опрос
Отладка TypeScript кода, 9 уровень, 9 лекция
Недоступен
Отладка TypeScript кода
Отладка TypeScript кода
Комментарии
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ