Приницп такий: в тебе є наприклад формочка для створення екземплярів моделі Foo, але доступна вона лише для залогованих користувачів групи Bar, незалогованих користувачів перенаправляти на форму логіну, користувачам які не мають прав доступу показувати відповідне повідомлення.
Сценарій:
Незалогований (Anonymous User) переходить на форму -> Перевіряємо чи його редіректить на форму логіну, якшо ні тест падає
Залогований користувач групи DummyUser переходить на форму -> Перевіряємо чи йому показує повідомлення про помилку в правах доступу, якшо ні тест падає
Залогований користувач Foo переходить на форму -> Перевіряємо чи показує йому форму.
Перевіряємо чи видаються помилки під час валідації
Перевіряємо чи реально створюється в базі елемент після заповнення форми валідними даними
Умов може бути багато, але приницп загальний однаковий. В ідеалі спершу ти маєш детальний продуманий алгоритм як має працювати тей чи інший компонент і пишеш для нього тести, а потім пишеш сам код цього компоненту (TDD) і проганяєш тести, якщо тетсти падають змінюєш код.
Навіщо це робиться? Щоб автоматизувати рутинну перевірку того, чи нічого ніде не зламалось і не полізли регрсії, особливо це буває необхідним, коли працює декілька розробників.
Посилань на конркретні матеріали не маю, оскільки користувався доками Django і StackOverFlow якщо мав специфічне запитання.
Успіхів!