网站建站历史,网站建设意向书,免费的图片做视频在线观看网站,快速收录网站内页一、unittest简介 unittest是Python中常用的单元测试框架#xff0c;与Java中的Junit单元测试框架类似。
二、示例程序
1#xff09;导入unittest模块
import unittest
2#xff09;使用help()函数查看源码中的示例程序
help(unittest)
Simple usage:import unittestc…一、unittest简介 unittest是Python中常用的单元测试框架与Java中的Junit单元测试框架类似。
二、示例程序
1导入unittest模块
import unittest
2使用help()函数查看源码中的示例程序
help(unittest)
Simple usage:import unittestclass IntegerArithmeticTestCase(unittest.TestCase):def testAdd(self): # test method names begin with testself.assertEqual((1 2), 3)self.assertEqual(0 1, 1)def testMultiply(self):self.assertEqual((0 * 10), 0)self.assertEqual((5 * 8), 40)if __name__ __main__:unittest.main()
3示例程序解析
第一行是导入unittest模块。class这一行是定义了一个测试类并继承unittest.TestCase类。接下来是定义了两个测试方法testAdd和testMultiply。这里的注释很重要测试方法的名称要以test开头。方法中是断言assert断言其实就是拿实际结果和期望结果去对比。这里使用的是assertEqual断言方法用来判断两个元素是否相等方法中可以写多个断言。unittest.main()是运行主函数运行后会看到如下测试结果
三、简单用法 上面的示例程序中是加法和乘法我们可以添加测试方法来测试一下减法和除法。
import unittestclass Demo(unittest.TestCase):def testMinus(self):self.assertEqual((5 - 2), 3)def testDiv(self):self.assertEqual((5 / 2), 2)if __name__ __main__:unittest.main() 运行代码第二个测试方法是失败的失败原因AssertionError: 2.5 ! 2。 四、前置和后置
1setUp在写测试方法时每次操作都需要先打开浏览器输入对应网址这些操作就是执行测试方法的前置条件。
2tearDown测试方法执行完毕后为了不影响下一个测试方法的执行一般需要有数据还原的过程这就是执行测试方法的后置条件。
3前置条件和后置条件都是非必要如果没有可以写pass。
4很多人执行完测试方法后不去做数据还原导致下一个测试方法执行失败这就是不喜欢擦屁股的坏习惯。
import unittestclass Demo(unittest.TestCase):def setUp(self):print(setUp)def tearDown(self):print(tearDown)def testMinus(self):print(testMinus)self.assertEqual((5 - 2), 3)if __name__ __main__:unittest.main() 五、测试类的运行方式
import unittestclass Test(unittest.TestCase):def test01(self):print(test01 start)self.assertEqual(1, 1)print(test01 end)def test02(self):print(test02 start)self.assertEqual(1, 2)print(test02 end)if __name__ __main__:print(测试开始~)unittest.main()
注当测试方法中断言失败后续的代码将不会执行。test02方法断言会失败后续的打印语句将不会执行。
1右键选择 Run Unittests in .... 执行 这种方式是以pycharm的unittest运行模式执行测试类不会执行 if 条件下的代码将 if 代码块去掉也能执行所有的测试方法。 2添加配置以普通.py文件执行 3添加配置以pycharm的unittest运行模式执行 六、案例演示 以打开百度搜索页为例判断title是否完全等于期望结果。
from selenium import webdriver
import unittest
import timeclass Demo(unittest.TestCase):def setUp(self):self.driver webdriver.Chrome()self.driver.get(https://www.baidu.com)time.sleep(3)def tearDown(self):time.sleep(1)self.driver.quit()def testTitle(self):title self.driver.titleprint(title)self.assertEqual(title, 百度一下)if __name__ __main__:unittest.main()