1 TestCase

一个TestCase的实例就是一个测试用例。什么是测试用例呢?就是一个完整的测试流程,

包括测试环境的准备(setUp),执行测试代码(run),以及测试后环境的还原(tearDown)。单元

测试(unit test)的本质也就在这里,一个测试用例是一个完整的测试单元,通过运行这个测试单元,可以对某一个问题进行验证。

2 TestSuite

而多个测试用例集合在一起就是TestSuite,而且TestSuite也可以嵌套TestSuite。TestLoader是用来加载测试用例到TestSuite中的。

3 TextTestRunner

TextTestRunner是用来执行测试用例的,其中的run()会执行TestSuite/TestCase中的run(result)方法。测试的结果会保存到TextTestResult实例中,包括运行了多少测试用例,成功了多少,失败了多少等信息。

4 Fixture

而对一个测试用例环境的搭建和销毁,是一个fixture。

案例:定义一个calculate类,然后用unittest进行测试;

#!/usr/bin/python3  
class Math:
  def __init__(self,a,b):
    self.a = int(a)
    self.b = int(b) def add(self):
    return self.a + self.b 测试代码:
#!/usr/bin/python3  
from calculator import Math
import unittest class TestMath(unittest.TestCase):
  def setUp(self):
    print('test start')
def test_add(self):
    j = Math(5,10)
    #self.assertEqual(j.add(),15)
    self.assertEqual(j.add(),12)
def tearDown(self):
    print('test end') if __name__ == '__main__':
  suite = unittest.TestSuite()
  suite.addTest(TestMath('test_add')) runner = unittest.TextTestRunner()
  runner.run(suite) 执行结果;

Testing started at 16:39 ... C:\Users\Administrator\AppData\Local\Programs\Python\Python36-32\python.exe "D:\PyCharm Community Edition 2017.3.3\helpers\pycharm\_jb_unittest_runner.py" --path E:/Selenium/unittest/test_Math.py Launching unittests with arguments python -m unittest E:/Selenium/unittest/test_Math.py in E:\Selenium\unittest test start test end


Ran 1 test in 0.008s


FAILED (failures=1)


12 != 15


Expected :15 Actual   :12  <Click to see difference>


Traceback (most recent call last):   File "D:\PyCharm Community Edition 2017.3.3\helpers\pycharm\teamcity\diff_tools.py", line 30, in _patched_equals     old(self, first, second, msg)   File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36-32\lib\unittest\case.py", line 829, in assertEqual     assertion_func(first, second, msg=msg)   File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36-32\lib\unittest\case.py", line 822, in _baseAssertEqual     raise self.failureException(msg) AssertionError: 15 != 12


During handling of the above exception, another exception occurred:


Traceback (most recent call last):   File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36-32\lib\unittest\case.py", line 59, in testPartExecutor     yield   File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36-32\lib\unittest\case.py", line 605, in run     testMethod()   File "E:\Selenium\unittest\test_Math.py", line 13, in test_add     self.assertEqual(j.add(),12)


Process finished with exit code 1

因为12 !=15,所以报错。


												

最新文章

  1. JQuery 快速入门
  2. Rethink your own
  3. SparkContext源码阅读
  4. &ldquo;耐撕&rdquo;团队第一次讨论&mdash;&mdash;&ldquo;抢答器&rdquo;需求分析
  5. java判断list为空
  6. Canvas 获取颜色值
  7. HTML 图像
  8. [扫描线]POJ2932 Coneology
  9. 关于JVM的ClassLoader(转)
  10. twisted学习笔记 No.1
  11. QT环境的搭建
  12. 【考试】java基础知识测试,看你能得多少分?
  13. 福利:工作经常用到的Mac软件整理(全)
  14. Kali学习笔记41:SQL手工注入(3)
  15. 测试那些事儿—软测必备的Linux知识(三)
  16. POJ1964-City Game
  17. Spring如何加载log4j配置文件
  18. SpringBoot扩展SpringMVC自动配置
  19. 如何完整卸载Mysql数据库
  20. MySQL 获取最后插入的ID LAST_INSERT_ID用法

热门文章

  1. 笑谈CSS的伪元素
  2. js网页倒计时功能(天,时,分,秒)
  3. golang学习(1)---快速hello world
  4. 面试java后端面经_4
  5. Kafka之Producer
  6. 谨慎 mongodb 关于数字操作可能导致类型及精度变化
  7. 章节十六、3-TestNG方法和类注解
  8. Ng-Matero 0.1 发布了!
  9. 渗透之路基础 -- 跨站脚本攻击XSS
  10. 集合系列 List(三):Vector