Python编写单元测试代码实例
作者:Jimmyhe 发布时间:2022-11-02 12:27:09
标签:Python,单元,测试
做一个简单的小实例:
目录结构如下:
demo1.py
class MyClass():
def __init__(self,x,y):
self.x = x
self.y = y
def add(self):
return self.x + self.y
def sub(self):
return self.x - self.y
import unittest
from unittset_demo.demo1 import MyClass
class MyclassTest(unittest.TestCase):
def setUp(self) -> None:
'''
测试之前的准备工作
:return:
'''
self.clac = MyClass(4,3)
def tearDown(self) -> None:
'''
测试之后的收尾
如关闭数据库
:return:
'''
pass
def test_add(self):
ret = self.clac.add()
self.assertEqual(ret,9)
def test_sub(self):
ret = self.clac.sub()
self.assertEqual(ret,-1)
if __name__ == '__main__':
suite = unittest.TestSuite()
suite.addTest(MyclassTest('test_add'))
suite.addTest(MyclassTest('test_sub'))
runner = unittest.TextTestRunner()
runner.run(suite)
setUp就是帮我们做测试前的准备工作,比如实例化等,
tearDown可以帮我们关闭数据库等收尾操作,
一般测试方法必须以test_开头,里面可以写我们需要测试的业务逻辑,同时指定self.assertEqual()将我们的结果和运行的实际结果进行比对。
suite就是我们的测试集,之后添加测试用例,用runner实例化运行。
运行结果:
如果我们将预计的结果写错,
def test_add(self):
ret = self.clac.add()
self.assertEqual(ret,2)
def test_sub(self):
ret = self.clac.sub()
self.assertEqual(ret,3)
运行结果:
同时我们还可以在django的test文件中测试自己的用例:
class StudentTest(TestCase):
def setUp(self);
Student.objects.create(name='jack',age=13)
def test_student_create(self):
obj = Student.objects.get(name='jack')
self.assertEqual(obj.age,18)
测试是使用的模板是否正确,在terminal中输入:python manage.py test 即可测试
class HomeTest(TestCase):
def test_home_page_renders_home_template(self):
response = self.client.get('/home/') # 模拟浏览器
self.assertEqual(response.status_code,200)
self.assertTemplateUsed(response,'home.html')
来源:https://www.cnblogs.com/jimmyhe/p/10852764.html
0
投稿
猜你喜欢
- 下面列出Python正则表达式的几种匹配用法,具体内容如下所示:此外,关于正则的一切http://deerchao.net/tutorial
- 最近游戏项目在多个国家上线,每个国家都对应两份儿svn目录(一份是本地策划目录,一份是线上目录)。于是乎维护变得很烦躁。需要先更新本地策划s
- 用法:DataFrame.drop(labels=None,axis=0, index=None, columns=None, inplac
- Python安装流程:一.下载在网上(输入网址https://www.python.org/downloads/)下载Windows最新的p
- 在爬一个网站的时候,端点包含中文浏览器是可以自动解决这个转换的,在代码中就需要处理一下了。请求过程的异常如下:self._output(re
- 如下所示:#-*- coding: utf-8 -*-import pandas as pdimport numpy as npfrom p
- 今天有人问起,晚上试着写出来,供参考; 以下代码兼容主流浏览器IE6、IE7、Firefox、Opera。从最简单的开始…………一
- 需求背景假设我们想设计一个定时任务,比如每天定时的用python来测试服务是否在正常运行,但是又不希望每天登录到系统后台去查看服务状态。这里
- 一、查询条件精确,针对有参数传入情况 二、SQL逻辑执行顺序 FROM-->JOIN-->WHERE-->GROUP--&
- 定义:Dim MyArray() Redim MyArray(5)Session("StoredAr
- 今天是 Firefox3的2008下载日 ,这就意味着Firefox3正式发布了。Firefox3有众多的改进和新功能,我最关注的功能之一是
- 大家好,今天才发现很多学习Flask的小伙伴都有这么一个问题,清理缓存好麻烦啊,今天就教大家怎么解决。大家在使用Flask静态文件的时候,每
- 步骤:1. 掌握几种对象及其关系2. 了解每类对象的基本操作方法3. 通过转化关系转化涉及对象1. datetime>>>
- 以前工作的时候由于Oracle8i数据库经常出现用户过多的错误,由于数据量大,经常出现ORA:12500错误,但主要原因是访问过多而引起的,
- 本文整理了一部分我们平时在项目中经常遇到的关于go语言JSON数据与结构体之间相互转换的问题及解决办法。基本的序列化首先我们来看一下Go语言
- 一、前言说明今天看到微信群里一道六年级数学题,如下图,求阴影部分面积看起来似乎并不是很难,可是博主添加各种辅助线,写各种方法都没出来,不得已
- 本文实例讲述了Go语言实现的树形结构数据比较算法。分享给大家供大家参考。具体实现方法如下:// Two binary trees may b
- 最近一直在用Vs2013调试编译opencv,意外发现一个超级赞的图片查看的插件, 超级方便易用的一个插件,直接以图片形式可视化了openc
- 相信有很多人有用程序向Excel导数据的需求, 且做过. 一般导出一些文本数据是很方便的, 可选方法很多, 比如拼接文本字符串存.cvs格式
- Microsoft SQL Server 2008将包含用于合并两个行集(rowset)数据的新句法。根据一个源数据表对另一个数据表进行确定