python-Web-flask-蓝图和单元测试

4 蓝图和单元测试:

 

可以使用代码实现蓝图对项目进行模块化数据库

admin=Blueprint('admin',__name__) # 建立一个蓝图对象

@admin.route('/')

def admin_home(): 

    return 'admin_home'

# app内部注册

app.register_blueprint(admin,url_prefix='/admin')

# 注册静态目录的路由

# static_admin目录设置为静态目录

admin = Blueprint("admin",__name__,static_folder='static_admin')

app.register_blueprint(admin,url_prefix='/admin')

# static_admin 文件夹的路由设置为 /lib

admin = Blueprint("admin",__name__,static_folder='static_admin',static_url_path='/lib')

app.register_blueprint(admin,url_prefix='/admin')

数据库分块json

# 注册db的函数
def register_db(app):
    db.init_app(app)
    # 建立全部和db相关联的表
    with app.app_context():
        db.create_all()
    return db

urls:flask

# 注册数据库
DB = register_db(app)app

 

迁移分块模块化

from flask_migrate import Migrate,MigrateCommand
from flask_script import Manager

from urls import app
from urls import DB as db

# 命令操做
manager = Manager(app)
# 迁移
migrate = Migrate(app,db)
manager.add_command('db',MigrateCommand)

if __name__ == '__main__':
    manager.run()

 

设置模板目录函数

admin = Blueprint('admin',__name__,template_folder='my_templates')post

可以说出断言的做用单元测试

断言就是判断一个函数或对象的一个方法所产生的结果是否符合你指望的那个结果测试

可以说出实现单元测试步骤url

1定义一个类,继承自unittest.TestCase

2 在测试类中,定义两个测试方法

3 在测试类中,编写测试代码

登陆测试

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()

 

可以说出单元测试所执行方法的定义规则

#该方法会首先执行,至关于作测试前的准备工做

    def setUp(self):

        pass

    #该方法会在测试代码执行完后执行,至关于作测试后的扫尾工做

    def tearDown(self):

        pass

    #测试代码

    def test_app_exists(self):

        pass
相关文章
相关标签/搜索