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
相關文章
相關標籤/搜索