1.Vue.js指令
解析:
[1]HTML属性中的值应使用v-bind指令。
[2]v-html指令用于输出HTML代码。
[3]指令是带有v-前缀的特殊属性,比如v-if。
[4]v-on指令用于监听DOM事件。
[5]v-show指令根据条件展示元素。
[6]v-model指令在表单控件元素上创建双向数据绑定。
2.import Vue from 'vue'
解析:import Vue from "../node_modules/vue/dist/vue.js"
3.el:'#app'
解析:将所有视图放在id值为app这个dom元素中。
4.<router-view></router-view>
解析:在页面中放入一个路由视图容器。
5.Python单元测试框架unittest
解析:
- 一个TestCase的实例就是一个测试用例。什么是测试用例呢?就是一个完整的测试流程,包括测试前准备环境的搭建[setUp],执行测试代码[run],以及测试后环境的还原[tearDown]。单元测试[unit test]的本质也就在这里,一个测试用例是一个完整的测试单元,通过运行这个测试单元,可以对某一个问题进行验证。
- 多个测试用例集合在一起就是TestSuite,而且TestSuite也可以嵌套TestSuite。
- TestLoader是用来加载TestCase到TestSuite中的,其中有几个loadTestsFrom__()方法,就是从各个地方寻找TestCase,创建它们的实例,然后add到TestSuite中,再返回一个TestSuite实例。
- TextTestRunner是来执行测试用例的,其中的run(test)会执行TestSuite/TestCase中的run(result)方法。
- 测试的结果会保存到TextTestResult实例中,包括运行了多少测试用例,成功了多少,失败了多少等信息。
6.执行测试用例的方法
解析:
[1]setUp()
在每个测试方法之前执行,这个方法引发的异常会被认为是错误,而非测试失败,默认实现是不做任何事。
[2]tearDown()
在每个测试方法之后执行,即使测试方法抛出异常tearDown()方法仍会执行,并且只有setUp()成功执行时tearDown()才会执行,同样这个方法引发的异常会被认为是错误,而非测试失败。默认实现是不做任何事。
[3]setUpClass()
在一个测试类的所有测试方法执行之前执行,相当于google test中的SetUpTestCase()方法,setUpClass()必须被装饰成一个classmethod()。
@classmethod
def setUpClass(cls):
...
[4]tearDownClass()
在一个测试类的所有测试方法执行之后执行,tearDownClass()必须被装饰成一个classmethod()。
@classmethod
def tearDownClass(cls):
...
7.单元测试用例
解析:
import unittest
# 继承unittest.TestCase
class MyTest(unittest.TestCase):
def tearDown(self):
print('每个测试用例执行之后做操作')
def setUp(self):
print('每个测试用例执行之前做操作')
@classmethod
def tearDownClass(self):
print('必须使用@classmethod装饰器,所有test运行完后运行一次')
@classmethod
def setUpClass(self):
print('必须使用@classmethod装饰器,所有test运行前运行一次')
def test_a_run(self):
# 测试用例
self.assertEqual(1, 1)
def test_b_run(self):
# 测试用例
self.assertEqual(2, 4)
if __name__ == '__main__':
# 运行所有的测试用例
unittest.main()
8.Flask Restful API单元测试
解析:
import unittest
import json
from app import app
class BasicTestCase(unittest.TestCase):
def setUp(self):
self.client = app.test_client()
self.client.testing = True
def tearDown(self):
pass
def test_logs_api(self):
book = {
"name": "Big Data Analysis",
"price": 58.5,
"category": "BigData"
}
uri = "/books"
result = self.client.post(uri, data=json.dumps(book), content_type='application/json')
self.assertEqual(result.status_code, 200)
if __name__ == '__main__':
unittest.main()
参考文献:
[1]Flask Restful API单元测试:https://blog.csdn.net/SystemEngineeringLab/article/details/80014690
[2]newpanjing/simpleui:https://github.com/newpanjing/simpleui