Как тестировать django?

Я хочу провести модульное тестирование моих представлений и моделей django. Я хочу протестировать views.py и model.py. Как я могу протестировать их на практическом уровне? Пожалуйста, дайте мне конкретный код. Я бы хотел более подробно расписать тест, который может допустить ошибки, но я новичок в django, так что как мне это сделать?

views.py

def view_tv_and_movie_detail(request, type_movie_or_tv, id):
    """TVかMovieがデータにあったらgetなかったら登録してget"""
    tv_or_movie_object, _ = TVAndMovie.objects.get_or_create(
        tmdb_id=id, judge_tv_or_movie=type_movie_or_tv
    )
    detail_tv_or_movie = TvAndMovieDetailhelp(request, tv_or_movie_object, 3)
    if request.method == "POST":
        detail_tv_or_movie.post_comment_action()
    context = detail_tv_or_movie.send_contexts_detail()
    template_place = "Movie/movie_detail.html" if type_movie_or_tv == "movie" else "Movie/tv_detail.html"
    return render(request, template_place, context)

models.py

class TVAndMovie(models.Model):
    tmdb_id = models.IntegerField(
        verbose_name="",
        blank=False,
        null=False,
    )
    
    judge_tv_or_movie = models.CharField(
        blank=False, null=False, default="movie", max_length=20
    )
    stars = models.FloatField(
        blank=False,
        null=False,
        default=0,
        validators=[MinValueValidator(0.0), MaxValueValidator(10.0)],
    )

    def get_comments(self) -> object:
        return Comment.objects.prefetch_related("tv_or_movie").filter(
            tv_or_movie_id=self.id
        )

    def average_stars(self) -> float:
        comments = self.get_comments()
        n_comments = comments.count()

        if n_comments:
            self.stars = round(
                sum([comment.stars for comment in comments]) / n_comments, 3
            )
        else:
            self.stars = 0
        self.save()
        return self.stars


class Comment(models.Model):

    comment = models.TextField(max_length=1000)
    stars = models.FloatField(
        blank=False,
        null=False,
        default=0,
        validators=[MinValueValidator(0.0), MaxValueValidator(10.0)],
    )
    user = models.ForeignKey(CustomUser, on_delete=models.CASCADE)
    tv_or_movie = models.ForeignKey(TVAndMovie, on_delete=models.CASCADE)
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

    class Meta:
        unique_together = ("user", "tv_or_movie")
        indexes = [models.Index(fields=["user", "tv_or_movie"])]

helper_views.py

Я хочу провести модульное тестирование моих представлений и моделей django. Я хочу протестировать views.py и model.py. Как я могу протестировать их на практическом уровне? Пожалуйста, дайте мне конкретный код. Я бы хотел более подробно расписать тест, который может допустить ошибки, но я новичок в django, так что как мне это сделать?

Вернуться на верх