Правильно ли я тестирую приложение? - Python

Узнай цену своей работы

Формулировка задачи:

Первое моё TDD приложение. Тест тоже отрабатывает верно. Если в моделях я уверен, то насчет тестов нет. Мои вопросы: 1) Нужно при каждом тесте создавать данные и сохранять их, как я здесь сделал? 2) Не слишком ли тестовые классы взаимосвязаны? Мне пришлось создавать статические конструкторы, потому что тестирование проекта без создания остальных объектов было бы невозможно. 3) Соблюдены ли общие правила создания тестов? 4) Нужно ли вручную уничтожать созданные в ходе тестов объекты? Единственный тест расположен в функции test_get_root_tasks Тесты
Модели

Решение задачи: «Правильно ли я тестирую приложение?»

textual
Листинг программы
from django.test import TestCase
from django.utils import timezone
from .models import Task, Project, Chief
 
class MyTest(TestCase):
 
    def setUp(self):
 
        now = timezone.now()
 
        self.chief = ChiefMethodTests.objects.create(
            surname="test chief", 
            dob=now,
            email="")
 
        self.project = Project.objects.create(
            name='test proj', 
            description="wow, such test",
            start_date=now, 
            end_date=now,
            chief=self.chief)
 
        self.root_task = Task.objects.create(
                name='task 0',
                description='wow, task 0!',
                start_date=now, 
                end_date=now,
                project=self.project) 
 
        self.task_array = [
            Task.objects.create(
                name='task {0}'.format(i), 
                description='wow, task {0}!'.format(i),
                start_date=now, 
                end_date=now,
                project=self.project,
                parent_task=self.root_task) 
            for i in xrange(1, 10)]
 
    def test_get_root_tasks(self):
 
        root_tasks = self.project.get_root_tasks()
 
        #проверить, вернулось ли что-нибудь вообще
        self.assertNotEqual(root_tasks.count(), 0)
 
        for task in root_tasks:
            self.assertEqual(task.parent_task, None)

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4 из 5