django的单元测试的起步教程(最初级)

编写测试的目的与范围:

首先,测试是为了验证代码的准确性。而前端代码是运行在浏览器上的代码,已经可以展示出来的,所以就不用写测试了。

那么我们需要测试的就只有后端代码,其中包括models,views和urls。

那么接下来就开始进行编写测试,首先创建测试文件,在以下目录下创建,没有文件夹就自行创建文件夹。

 

我是编写了两个文件,分别测试models和views,测试views不可避免要测试urls,所以urls的测试就省略了。

官方文档还有test_forms.py,由于Django几乎自学,所以我也不大了解forms具体是做什么的,暂不考虑。

然后编写测试类,测试类需要继承TestCase基类。

 

该基类下有两个三个函数,分别介绍。

第一,@classmethod

def setUpTestData(cls):

 

该函数中在启动运行时中调用一次,且只会调用一次,可以在这里写数据库数据。另外说一句,Django的unit test用的数据库和Django server用的数据库是独立分开的,单元测试的数据库用完会自动销毁,如若不想销毁,自行百度。

第二,def setUp(self) -> None:
 

 

该函数在每个测试函数开头调用一次,可以在这里编写每个测试函数都需要做的东西。

第三,def tearDown(self) -> None:
 

 

该函数在每个测试函数结束运行后调用一次,可以在这里编写每个测试函数都需要做的东西。

然后就是正常的测试函数的编写,先说views的测试,举以下的例子。

 

self.client是Django单元测试自带的客户机,可以使用get(url)方法去获取Httpresponse。

不过url每次都得写全部格式,可以用reverse反转,通过字符串寻找url。如下。

 

当然,有get就有post,都是一样的方法。如果想传递参数,则再添加一个参数data,写法如下:

 

data参数的内容一般都是字典格式,这里一般都传表单中需要的值。

response.status_code是Http状态码,200代表无异常,3xx代表拒绝,404访问不到,500服务器错误。我记得就这么多。

如果要测试Response中从后端传到前端的参数,则使用以下语句

 

response.context存储的是后端传到前端的参数,以字典的形式。就这样查。

models的测试就不说了,就是测试一下字段名是否一致,然后创建一行数据进去,看看取出来是否一致,直接看着官方代码就能编。

最后,测试是可以debug的,按以下信息编辑配置

 

 

然后就能设置断点了。

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Django是一个流行的Python Web框架,它提供了一套完整的开发工具和功能,包括单元测试单元测试是一种软件测试方法,用于验证代码的各个单元(函数、方法、类等)是否按照预期工作。 在Django中,你可以使用内置的测试框架来编写和运行单元测试。以下是关于Django单元测试的一些介绍: 1. 测试文件位置:通常,你可以在每个应用程序的tests.py文件中编写单元测试代码。这样可以将测试代码与应用程序代码分开,并且可以轻松地运行和管理测试。 2. 测试类和方法:你可以创建一个继承自django.test.TestCase的测试类,并在其中定义各种测试方法。每个测试方法应该以test_开头,并且可以使用各种断言方法来验证预期结果。 3. 测试数据库:Django提供了一个特殊的测试数据库,用于在每次运行测试时进行数据隔离。这意味着你可以在测试中创建、修改和删除数据,而不会影响到开发或生产数据库。 4. 测试客户端:Django提供了一个测试客户端,用于模拟HTTP请求和响应。你可以使用该客户端来测试视图函数、URL路由和模板渲染等功能。 5. 运行测试:你可以使用Django的manage.py命令来运行单元测试。例如,可以使用"python manage.py test"命令来运行所有应用程序的测试,或者使用"python manage.py test app_name"命令来运行特定应用程序的测试

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值