Django 项目测试示例

好的,我给你一个最简单的 Django 测试示例,包括模型、视图和测试用例。


1. 定义模型 models.py

from django.db import models

class Person(models.Model):
    name = models.CharField(max_length=100)
    age = models.IntegerField()

2. 定义视图 views.py

from django.shortcuts import render, get_object_or_404
from .models import Person
from django.http import JsonResponse

def index(request):
    person_id = request.GET.get("id")
    person = get_object_or_404(Person, id=person_id)
    return render(request, "index.html", {"person": person})

def api(request):
    return JsonResponse({"msg": "hello world"})

3. 测试用例 tests.py

from django.test import TestCase, Client
from .models import Person

class PersonTest(TestCase):
    def setUp(self):
        Person.objects.create(name="Lucy", age=10)
        Person.objects.create(name="May", age=12)

    def test_model_data(self):
        lucy = Person.objects.get(name="Lucy")
        may = Person.objects.get(name="May")
        self.assertEqual(lucy.age, 10)
        self.assertEqual(may.age, 12)

    def test_api_view(self):
        client = Client()
        response = client.get("/api/")
        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.json(), {"msg": "hello world"})

    def test_html_view(self):
        client = Client()
        response = client.get("/?id=2")
        self.assertEqual(response.status_code, 200)
        self.assertTemplateUsed(response, "index.html")
        self.assertEqual(response.context["person"].name, "May")

4. 运行测试

在项目根目录运行:

python manage.py test

Django 会自动发现 tests.py 文件里的测试类,并运行其中所有以 test_ 开头的方法。


Scroll to Top