个人网站制作新手教程,长沙计算机培训机构哪家最好,建筑人才网官网首页,网站开发可选的方案有3.1 unittest简介 前言 熟悉java的应该都清楚常见的单元测试框架Junit和TestNG。python里面也有单元测试框架-unittest,相当于是一个python版的junit。python里面的单元测试框架除了unittest#xff0c;还有一个pytest框架#xff0c;这个用的比较少#xff0c;后面有空再继…3.1 unittest简介 前言 熟悉java的应该都清楚常见的单元测试框架Junit和TestNG。python里面也有单元测试框架-unittest,相当于是一个python版的junit。python里面的单元测试框架除了unittest还有一个pytest框架这个用的比较少后面有空再继续分享。 3.1.1 unittest简介 1先导入unittest2用help函数查看源码解析3查看描述Python unit testing framework, based on Erich Gammas JUnit and KentBecks Smalltalk testing framework. 翻译python的单元测试框架是基于java的junit测试框架。 3.1.2 简单用法 可以把上图的这段代码copy出来单独运行看看测试结果。 Simple usage: import unittestclass IntegerArithmeticTestCase(unittest.TestCase):deftestAdd(self): ## test method names begin test* self.assertEqual((1 2), 3) self.assertEqual(0 1, 1) deftestMultiply(self): self.assertEqual((0 * 10), 0) self.assertEqual((5 * 8), 40) if __name__ __main__: unittest.main() 1第一行是导入unittest这个模块2class这一行是定义一个测试的类并继承unittest.TestCase这个类3接下来是定义了两个测试case名称testAdd和testMultiply4注释里面有句话很重要这个要敲下黑板记笔记了## test method names begin test* --翻译测试用例的名称要以test开头5然后是断言assert这里的断言方法是assertEqual-判断两个是否相等这个断言可以是一个也可以是多个6if下面的这个unittest.main()是运行主函数运行后会看到测试结果跑了两个用例耗时0.000秒,两个用例都通过----------------------------------------------------------------------Ran 2 tests in 0.000sOK 3.1.3 小试牛刀 1.上面的两个案例是加法和乘法我们可以写个case试下减法和除法。2.有很多小伙伴不知道断言怎么写断言其实就是拿实际结果和期望结果去对比对比的方法很多这里只是举的最简单的一个判断相等的方法。 3.最后运行结果第二个是失败的失败原因AssertionError: 3 ! 3.5F.FAIL: testDivide (__main__.Test) 这里是测试除法----------------------------------------------------------------------Traceback (most recent call last): File D:/test/web-project/p.py, line 14, in testDivide self.assertEqual(result, hope)AssertionError: 3 ! 3.5----------------------------------------------------------------------Ran 2 tests in 0.000sFAILED (failures1) 3.1.4 前置和后置 1setUp在写测试用例的时候每次操作其实都是基于打开浏览器输入对应网址这些操作这个就是执行用例的前置条件。2tearDown执行完用例后为了不影响下一次用例的执行一般有个数据还原的过程这就是执行用例的后置条件。3很多人执行完用例都不去做数据还原以致于下一个用例执行失败这就是不喜欢擦屁股的事情习惯不好。4前置和后置都是非必要的条件如果没有也可以写pass 3.1.5 博客案例 1打开博客首页为例写一个简单的case2判断title完全等于期望结果3运行通过下面会有一个绿条显示1 test passed 3.1.6 参考代码 # codingutf-8
from selenium import webdriver
from selenium.webdriver.support import expected_conditions as EC import time import unittestclass Blog(unittest.TestCase): def setUp(self): self.driver webdriver.Firefox() self.driver.get(http://www.cnblogs.com/yoyoketang) def test_blog(self): time.sleep(3) result EC.title_is(u上海-悠悠 - 博客园)(self.driver) print result self.assertTrue(result) def tearDown(self): self.driver.quit()if __name__ __main__: unittest.main() 转载于:https://www.cnblogs.com/lunvo/p/9183863.html