第二章 使用 unittest 模块拓展功能测试
1 . TDD常与敏捷软件开发方法结合在一起使用,常被叫做是"最简可用的应用".
2 . Python 标准库中的unittest
模块与selenium
第一次合体:
from selenium import webdriver
import unittest
class NewVisitorTest(unittest.TestCase):
def setUp(self):
self.browser = webdriver.Firefox()
self.browser.implicitly_wait(3)
def tearDown(self):
self.browser.quit()
def test_can_start_a_list_and_retrieve_it_later(self):
self.browser.get('http://localhost:8000')
self.assertIn('To-Do',self.browser.title)
self.fail('Finish the test!')
if __name__ == '__main__':
unittest.main(warnings='ignore')
- 用面向对象的方法进行测试,组织成类的形式,继承自
unittest.TestCase
- 名字以
test_
开头的方法都是测试方法(为测试方法起个好名字很重要) - 基本的
setUp
和tearDown
就不说了.. -
self.fail()
指定让其失败,使用这个告诉我们测试结束 - 调用
unittest.main()
启动测试程序运行 - 如果setUp方法抛出异常,那么tearDown方法不会运行
-
warnings='ignore'
作用:禁止抛出ResourceWarning
异常,最新版本已经没有这个异常了.. -
self.browser.implicitly_wait(3)
:让Seleniumn等待3s钟(加载资源)
3 . 自动添加已经跟踪的文件(即只跟踪之前提交过的文件)
git commit -a
有用的TDD概念
- 预期失败
意料之中的失败
网友评论