Является ли экспорт функции только для тестирования плохой практикой? - PullRequest
1 голос
/ 28 июня 2019

У меня есть этот вопрос, особенно после прочтения официальной документации по тестированию компонентов React:

https://github.com/reduxjs/redux/blob/master/docs/recipes/WritingTests.md

Чтобы иметь возможность тестировать сам компонент приложения без необходимости иметь дело с декоратором, мы рекомендуем вам также экспортировать недекорированный компонент

Даже знаменитый https://www.reactboilerplate.com/ экспортирует именованные несвязанные компоненты, чтобы иметь возможность протестировать их, не издеваясь над магазином.

Но разве не считается плохим экспортировать что-то, чтобы было проще тестировать?

Могут быть случаи, когда разработчик делает неправильный импорт и вносит ошибку только потому, что из файла экспортируются две вещи.

Итак, вопрос по существу таков:

Можем ли мы внести изменения в реальный код, чтобы упростить тестирование?

Хотя этот вопрос относится к React, было бы здорово узнать, есть ли у других языков или структур аналогичные проблемы и как с ними справляться.

1 Ответ

1 голос
/ 28 июня 2019

вы всегда можете сделать условный экспорт в зависимости от вашей среды.

что-то вроде:

export default connect(mstp, mdtp)(component1);

export let tests = {
  component1,
  component2,
  ...
};

if (process.env.NODE_ENV !==   "test") {
  tests = undefined;
}

и затем в вашем тестовом файле вы делаете

import { tests} from ".";
const { component1, component2 } = tests;
//now test unconnected components
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...