博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Django为数据库的ORM写测试例(TestCase)
阅读量:6156 次
发布时间:2019-06-21

本文共 1892 字,大约阅读时间需要 6 分钟。

models.py里的数据库定义如下:

from django.db import models# Create your models here.class Teachers(models.Model):    name = models.CharField(max_length=32)class Classes(models.Model):    title = models.CharField(max_length=32)    a = models.ManyToManyField(Teachers)class Students(models.Model):    username = models.CharField(max_length=32)    age = models.IntegerField()    gender = models.BooleanField()    cs = models.ForeignKey(Classes, on_delete=models.CASCADE)

tests.py里的内容如下,注意红色部分,是比较麻烦一点的,要构建好相关的orm语句及使用assertIn之类的来测试。

from django.test import TestCasefrom .models import Students, Teachers, Classes# Create your tests here.class ModelTest(TestCase):    def setUp(self):        t1 = Teachers.objects.create(name="Mrs. Chane")        t2 = Teachers.objects.create(name="Mss. Fang")        Teachers.objects.create(name="ABC")        c1 = Classes(title="123")        c1.save()        c1.a.add(t1)        c1.a.add(t2)        c1.save()        Students.objects.create(username="bb",                                age=23,                                gender=True,                                cs=c1)    def test_teacher_models(self):        result = Teachers.objects.get(name="Mrs. Chane")        self.assertEqual(result.name, "Mrs. Chane")    def test_class_models(self):        t1 = Teachers.objects.get(name="Mrs. Chane")        t2 = Teachers.objects.get(name="Mss. Fang")        t3 = Teachers.objects.get(name="ABC")        result = Classes.objects.get(title="123")        self.assertEqual(result.title, "123")        self.assertIn(t1, result.a.all())        self.assertIn(t2, result.a.all())        self.assertNotIn(t3, result.a.all())    def test_student_models(self):        result = Students.objects.get(username="bb")        self.assertEqual(result.age, 23)        c1 = Classes.objects.get(title="123")        self.assertEqual(result.cs, c1)        self.assertEqual(result.gender, True)

 

转载地址:http://yqifa.baihongyu.com/

你可能感兴趣的文章
Redis 介绍2——常见基本类型
查看>>
asp.net开发mysql注意事项
查看>>
(转)Cortex-M3 (NXP LPC1788)之EEPROM存储器
查看>>
ubuntu set defult jdk
查看>>
[译]ECMAScript.next:TC39 2012年9月会议总结
查看>>
【Xcode】编辑与调试
查看>>
用tar和split将文件分包压缩
查看>>
[BTS] Could not find stored procedure 'mp_sap_check_tid'
查看>>
PLSQL DBMS_DDL.ALTER_COMPILE
查看>>
Activity生命周期
查看>>
高仿UC浏览器弹出菜单效果
查看>>
Ubuntu忘记密码,进不了系统的解决方法
查看>>
[原创]白盒测试技术思维导图
查看>>
<<Information Store and Management>> 读书笔记 之八
查看>>
Windows 8 开发之设置合约
查看>>
闲说HeartBeat心跳包和TCP协议的KeepAlive机制
查看>>
MoSQL
查看>>
Hibernate多对一外键单向关联(Annotation配置)
查看>>
《CLR via C#》读书笔记 之 方法
查看>>
设计模式:组合模式(Composite Pattern)
查看>>