Python网络数据采集之单元测试|第11天
2018-04-19 本文已影响133人
你好我是森林
User:你好我是森林
Date:2018-04-19
Mark:《Python网络数据采集》
网络采集系列文章
Python网络数据采集之创建爬虫
Python网络数据采集之HTML解析
Python网络数据采集之开始采集
Python网络数据采集之使用API
Python网络数据采集之存储数据
Python网络数据采集之读取文件
Python网络数据采集之数据清洗
Python网络数据采集之处理自然语言
Python网络数据采集之登录采集处理
Python网络数据采集之图像识别与文字处理
测试简介
运行一套测试方法能够保证你的代码按照既定的目标运行,不仅可以节约你的时间,减少你对bug
的忧虑,还可以让新版本升级变得更加简单。
单元测试的特点:
- 每个单元测试用于测试一个零件(
component
)功能的一个方面。 - 每个单元测试都可以完全独立地运行,一个单元测试需要的所有启动(
setup
)和卸载 (teardown
)都必须通过这单元测试本身去处理。单元测试不能对其他测试造成干扰,而且不论按何种顺序排列,它们都必须能够正常地运行。 - 每个单元测试通常至少包含一个断言(
assertion
)。 - 单元测试与生产代码是分离的。
Python单元测试
Python
的单元测试模块unittest
,所有标准版Python
安装后都有。例如:
import unittest
class TestAddition(unittest.TestCase):
def setUp(self):
print("Setting up the test")
def tearDown(self):
print("Tearing down the test")
def test_twoPlusTwo(self):
total = 2+2
self.assertEqual(4, total)
if __name__ == '__main__':
unittest.main()
setUp()
和tearDown()
在每个测试的开始和结束都会运行一次,而不是把类中所有测试作为一个整体在开始或结束时各运行一次。
Selenium单元测试
Selenium
不要求单元测试必须是类的一个函数,它的 “断言”语句也不需要括号,而且测试通过的话不会有提示,只有当测试失败时才会产生信息提示:
driver = webdriver.PhantomJS()
driver.get("http://en.wikipedia.org/wiki/Monty_Python")
assert "Monty Python" in driver.title
driver.close()
写 Selenium
单元测试的时候需要比写 Python
单元测试更加随意,断言语句甚至可以整合到生产代码中,非常适合某些条件不能满足就中断代码的需求。
Python单元测试与Selenium单元测试的选择
Selenium
可以轻易地获取网站的信息,而单元测试可以评估这些信息是否满足通过测试的条件。因此,你没有理由拒绝把 Selenium
导入 Python
的单元测试,两者组合是最佳拍档。
原文地址:https://chensenlin.cn/posts/62394/
欢迎你免费加入我的星球,一起分享,共同成长。
知识星球