python mysql单元测试_python中的单元测试和数据库测试

登录测试

被测试的代码逻辑

@app.route('/login', methods=['POST'])

def login():

username = request.form.get('username')

password = request.form.get('password')

# 判断参数是否为空

if not all([username, password]):

result = {

"errcode": -2,

"errmsg": "params error"

}

return jsonify(result)

# a = 1 / 0

# 如果账号密码正确

# 判断账号密码是否正确

if username == 'itheima' and password == 'python':

result = {

"errcode": 0,

"errmsg": "success"

}

return jsonify(result)

else:

result = {

"errcode": -1,

"errmsg": "wrong username or password"

}

return jsonify(result)

单元测试代码

import json

import unittest

from demo1_login import app

class LoginTest(unittest.TestCase):

"""为登录逻辑编写测试案例"""

def setUp(self):

app.testing = True

self.client = app.test_client()

def test_empty_username_password(self):

"""测试用户名与密码为空的情况[当参数不全的话,返回errcode=-2]"""

response = app.test_client().post('/login', data={})

json_data = response.data

json_dict = json.loads(json_data)

self.assertIn('errcode', json_dict, '数据格式返回错误')

self.assertEqual(json_dict['errcode'], -2, '状态码返回错误')

# TODO 测试用户名为空的情况

# TODO 测试密码为空的情况

def test_error_username_password(self):

"""测试用户名和密码错误的情况[当登录名和密码错误的时候,返回 errcode = -1]"""

response = app.test_client().post('/login', data={"username": "aaaaa", "password": "12343"})

json_data = response.data

json_dict = json.loads(json_data)

self.assertIn('errcode', json_dict, '数据格式返回错误')

self.assertEqual(json_dict['errcode'], -1, '状态码返回错误')

# TODO 测试用户名错误的情况

# TODO 测试密码错误的情况

if __name__ == '__main__':

unittest.main()

数据库测试:

#coding=utf-8

import unittest

from author_book import *

#自定义测试类,setUp方法和tearDown方法会分别在测试前后执行。以test_开头的函数就是具体的测试代码。

class DatabaseTestCase(unittest.TestCase):

def setUp(self):

app.config['TESTING'] = True

app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:mysql@localhost/test0'

self.app = app

db.create_all()

def tearDown(self):

db.session.remove()

db.drop_all()

#测试代码

def test_append_data(self):

au = Author(name='xxxxx')

bk = Book(info='python')

db.session.add_all([au,bk])

db.session.commit()

author = Author.query.filter_by(name='itcast').first()

book = Book.query.filter_by(info='python').first()

#断言数据存在

self.assertIsNotNone(author)

self.assertIsNotNone(book)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值