Как тестировать 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, так что как мне это сделать?