Тестовая функция, которая читает из файла `json` - PullRequest
0 голосов
/ 16 апреля 2020

У меня есть файл утилит, который импортирует и проверяет, что данный sectionUUID имеет видео в файле json.

import multipleVideos from '../data/videos.json'

function hasSectionMultipleVideos (sectionUUID) {
  return multipleVideos.videos.some(({ fields }) => {
    return fields.sectionUUID === sectionUUID
  })
}

Проблема заключается в том, что при попытке протестировать эту функцию (util.test.js), поскольку он не принимает multipleVideos данные, прочитанные с json, как входные данные, как я могу проверить это в шутку, предоставив свои собственные данные нескольких видео.

1 Ответ

0 голосов
/ 17 апреля 2020

Вот решение для модульного тестирования:

index.ts:

import multipleVideos from './videos.json';

function hasSectionMultipleVideos(sectionUUID) {
  return multipleVideos.videos.some(({ fields }) => {
    return fields.sectionUUID === sectionUUID;
  });
}

export { hasSectionMultipleVideos };

index.test.ts:

import { hasSectionMultipleVideos } from './';

describe('61259592', () => {
  it('should pass', () => {
    const sectionUUID = 1;
    const actual = hasSectionMultipleVideos(sectionUUID);
    expect(actual).toBeTruthy();
  });
});

videos.json:

{
  "videos": [
    {
      "fields": { "sectionUUID": 1 }
    },
    {
      "fields": { "sectionUUID": 2 }
    },
    {
      "fields": { "sectionUUID": 3 }
    }
  ]
}

результаты модульного тестирования со 100% покрытием:

 PASS  stackoverflow/61259592/index.test.ts (13.22s)
  61259592
    ✓ should pass (3ms)

----------|---------|----------|---------|---------|-------------------
File      | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s 
----------|---------|----------|---------|---------|-------------------
All files |     100 |      100 |     100 |     100 |                   
 index.ts |     100 |      100 |     100 |     100 |                   
----------|---------|----------|---------|---------|-------------------
Test Suites: 1 passed, 1 total
Tests:       1 passed, 1 total
Snapshots:   0 total
Time:        15.07s

исходный код: https://github.com/mrdulin/react-apollo-graphql-starter-kit/tree/master/stackoverflow/61259592

...