Юнитест в Джанго. Статическая переменная подается в тестовый пример - PullRequest
2 голосов
/ 05 апреля 2010

Я хочу сгенерировать некоторые динамические данные и передать их в тестовые случаи.Но я обнаружил, что Django будет каждый раз начинать тестовый класс, чтобы выполнить тест.Таким образом, данные будут генерироваться каждый раз, когда тестовая среда django вызывает функцию.

В любом случае можно использовать что-то вроде одноэлементной или статической переменной для решения проблемы?Каким должно быть решение?

Спасибо!

1 Ответ

3 голосов
/ 05 апреля 2010

Это нормальное поведение юнит-теста, хотя обычно вы устанавливаете тестовые данные в методе setUp() вместо __init__ (и, возможно, уничтожаете его в tearDown()).

Если генерация ваших данных динамического теста занимает много времени для каждого метода теста, то я думаю, что лучший способ - создать класс данных одноэлементного теста. В этом случае вам нужно позаботиться о том, чтобы каждый метод тестирования оставлял класс тестовых данных в том же состоянии, в котором он его нашел, что не является тривиальным, если вы хотите, чтобы ваши методы тестового примера записали в него что-то; Именно по этой причине unittest пытается заново сгенерировать среду тестирования для каждого метода теста.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...