1

Тема: Тестування django додатків

Вітаю!

Прийшов час мені писати код, гарно покритий тестами. Офіційну документацію django я прочитав. Та там тільки 2 кейси на створення моделей і юрли.

Порадьте якісь туторіали про те, що варто перевіряти, які кейси. Може не django, тільки щоб мені зрозуміти загальну суть тестування для вебу. Я просто в реальному проекті ні разу не бачив і не писав...

Дякую!

Навчаюсь вчитись, щоб навчатись.

2 Востаннє редагувалося linevich (13.11.2016 20:38:55)

Re: Тестування django додатків

Приницп такий: в тебе є наприклад формочка для створення екземплярів моделі Foo, але доступна вона лише для залогованих користувачів групи Bar, незалогованих користувачів перенаправляти на форму логіну, користувачам які не мають прав доступу показувати відповідне повідомлення.

Сценарій:

  • Незалогований (Anonymous User) переходить на форму -> Перевіряємо чи його редіректить на форму логіну, якшо ні тест падає

  • Залогований користувач групи DummyUser переходить на форму  -> Перевіряємо чи йому показує повідомлення про помилку в правах доступу, якшо ні тест падає

  • Залогований користувач Foo переходить на форму  -> Перевіряємо чи показує йому форму.

  • Перевіряємо чи видаються помилки під час валідації

  • Перевіряємо чи реально створюється в базі елемент після заповнення форми валідними даними

Умов може бути багато, але приницп загальний однаковий. В ідеалі спершу ти маєш детальний продуманий алгоритм як має працювати тей чи інший компонент і пишеш для нього тести, а потім пишеш сам код цього компоненту (TDD) і проганяєш тести, якщо тетсти падають змінюєш код.

Навіщо це робиться? Щоб автоматизувати рутинну перевірку того, чи нічого ніде не зламалось і не полізли регрсії, особливо це буває необхідним, коли працює декілька розробників.

Посилань на конркретні матеріали не маю, оскільки користувався доками Django і StackOverFlow якщо мав специфічне запитання.

Успіхів!

Подякували: Q-bart, Blast2

3

Re: Тестування django додатків

Q-bart написав:

Вітаю!

Прийшов час мені писати код, гарно покритий тестами. Офіційну документацію django я прочитав. Та там тільки 2 кейси на створення моделей і юрли.

Порадьте якісь туторіали про те, що варто перевіряти, які кейси. Може не django, тільки щоб мені зрозуміти загальну суть тестування для вебу. Я просто в реальному проекті ні разу не бачив і не писав...

Дякую!

Ви оце читали?
https://docs.djangoproject.com/es/1.10/ … ing/tools/
Ну і корінь:
https://docs.djangoproject.com/en/1.10/topics/testing/

Цього повинно бути більше, ніж достатньо.

Мій блог про ОС сімейства *nix - http://nixtravelling.blogspot.com/

4

Re: Тестування django додатків

Питання!

Пишу я тести. Один TestCase для моделі(А) яка містить поле з FK на іншу модель(B). Для  моделі B теж є TestCase, і там створюється об'єкт B.

Але, коли пробуєш доступитись до B, при тестуванні A - пише що нуль об'єктів в базі.

Як це так?

Навчаюсь вчитись, щоб навчатись.

5

Re: Тестування django додатків

Телепатично бачу знищення об'єкту B в TestCaseB.tearDown.

Подякували: Q-bart1

6

Re: Тестування django додатків

Тому що "кожен тест це острів" і не повинен розраховувати на те що перед ним виконаються якісь інші тести (окрім setUp звісно). Бо, раптом їх запустили паралельно?

Подякували: Q-bart1

7

Re: Тестування django додатків

Тада, я вже вкурив. Просто нещодавно мені довелось писати тести на django 1.6 і там було, здається, така фігня. Що об'єкти з попередніх тестів існували.

Навчаюсь вчитись, щоб навчатись.