unittest单元测试

1.背景

到了公司发现,ut(单元测试)是非常重要的一部分,ut并不是完全是测试的同学完成,很多时候ut是需要开发的同学自己来做。研究了下python脚本下unittest包的用法。

使用的时候要import unittest包,函数的传入参数unittest.TestCase,主要结构包括:

setUp():初始化测试函数

tearDown():测试结束后的清理工作

若干测试函数以test为开头

2.代码实例

需要测试的函数:

# -*- coding: UTF-8 -*-
'''
Created on 2015��7��21��

@author: aohai.lb
'''
class TestClass():
    def __init__(self):
        pass
    def sum(self,x,y):
        return x+y
    def sub(self):
        return 7

测试函数:

# -*- coding: UTF-8 -*-
'''
Created on 2015年7月21日

@author: aohai.lb
'''
import TestClass
import unittest

class test(unittest.TestCase):
    ## 初始化
    def setUp(self):
        self.myclass=TestClass.TestClass()
        pass

    def testsum(self):
        ##如果sum函数输出错误,系那是test sum fail
        self.assertEqual(self.myclass.sum(1,2),3,'test sum fail')

    def testsub(self):
        self.assertEqual(self.myclass.sub(),8,'test sub fail ')

    def tearDown(self):
        pass
if __name__=='__main__':
    unittest.main()
        

在测试中,testsub函数我故意输出错误的内容,看一下显示的结果:

F.
======================================================================
FAIL: testsub (__main__.test)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "D:\java\unittest\Test.py", line 21, in testsub
    self.assertEqual(self.myclass.sub(),8,'test sub fail ')
AssertionError: test sub fail 

----------------------------------------------------------------------
Ran 2 tests in 0.001s

FAILED (failures=1)
[Finished in 0.3s with exit code 1]

/********************************

* 本文来自博客  “李博Garvin“

* 转载请标明出处:http://blog.csdn.net/buptgshengod

******************************************/

时间: 2024-09-16 08:48:44

unittest单元测试的相关文章

Node.js的UnitTest单元测试

在专业化的软件开发过程中,无论什么平台语言,现在都需要UnitTest单元测试. Node.js有built-in的Assert. 今天让我们来看一下Node.js的单元测试.在这儿我们使用nodeunit, 通过NPM安装: npm install nodeunit -g 支持命令行,浏览器运行. 各种断言. 在node.js下模块化对于方法导出exports, 如果是对象导出module.exports,模块儿是单元测试的基础,看下面的node.js代码: var fs = require(

Golang UnitTest单元测试

最近做项目的时候一直很苦恼,go的单元测试是怎么回事,之前有看过go test  xx_test.go命令进行单元测试,只知道有这么一说.最近项目中写了很多工具类,一直想测试一下性能和执行结果.发现完全不对. 这是代码. 发现多次执行go test utilfile_test.go完全没有任何输出.查很多原因和多帖子,都没说到重点.今天在群里问了下,才发现go单元测试对文件名和方法名,参数都有很严格的要求. 例如: 1.文件名必须以xx_test.go命名 2.方法必须是Test[^a-z]开头

Rails测试《二》单元测试unit test

单元测试 单元测试针对model,主要是测试model中的业务规则,测试model中的验证validates规则. 单元测试的文件存放在test/unit文件夹,针对user的model的单元测试文件是user_test.rb. 常用命令 从db/schema.rb中同步测试数据库的结构. 在数据库结构变化之后,就需要执行这个命令,保持测试数据库的结构和最新的数据库结构一致. rake db:test:prepare 还有其他的一些相关命令. 如何编写并进行单元测试 在使用rails g mod

自动化单元测试实践之路

自动化单元测试并不是什么新鲜事物,它应该是团队持之以恒的事情,可能有很多团队知道如何去做,但是还做得不够好:还有不少团队不知道如何去做,甚至有一些旧系统还不敢去重构,还在坚持着Java中的main方法调用的方式来执行,在漫长等待构建结果. 本文主要讲基于Java项目如何做自动化单元测试的实践. 1 是否值得 关于单元测试的意义,详细参考stackoverflow这篇文章: http://stackoverflow.com/questions/67299/is-unit-testing-worth

Python单元测试框架之pytest -- 断言

对于测试来讲,不管是功能测试,自动化测试,还是单元测试.一般都会预设一个正确的预期结果,而在测试执行的过程中会得到一个实际的结果.测试的成功与否就是拿实际的结果与预期的结果进行比较.这个比的过程实际就是断言(assert). 在unittest单元测试框架中提供了丰富的断言方法,例如assertEqual().assertIn().assertTrue().assertIs()等,而pytest单元测试框架中并没提供特殊的断言方法,而是直接使用python的assert进行断言. 下面我们就来介

Visual C#中定义和使用自己的特性

复杂的,面向组件的业务开发,期待现代的软件开发工程师们具备更多的弹性设计,而不是过去的方法设计.微软的.NET框架通过众所周知的声明式编程,广泛的使用特性来附加额外的功能.在软件系统里,特性可以增强系统的弹性,这是因为,特性使功能的松耦合得到了增强.所以,你可以定制自己的特性类,然后根据你自己的意图,合理的使用这些具有松耦合功效的特性. 使用.NET框架编写Windows程序,在很多方面已经变得很简单.在许多情况下,.NET框架使用,.NET编译器在编译时绑定到程序集的元数据,.使灵活的程序设计

web接口开发与测试

最近一直在学习和整理web开发与接口测试的相关资料.接口测试本身毫无任何难度,甚至有很多工具和类库来帮助我们进行接口测试.大多测试人员很难深入了解web接口测试的原因是对web开发不太了解,当你越了解开发就会越看得清接口是什么.当然,web开发是比较麻烦,我们很难一下子掌握.   注:不过本文并不是一个零基础的文章,需要你对 Django web开发,requests接口库,unittest单元测试框架,三者有一定的了解.   Django快速开发之投票系统 之前分享过一篇Django开发投票系

基于selenium的pyse自动化测试框架

WebUI automation testing framework based on Selenium 介绍: pyse基于selenium(webdriver)进行了简单的二次封装,比selenium提供的方法操作更简洁.   起因: python + selenium 自动化测试写久了发现selenium(webdriver)提供原生的方法并简便,于是,产生了二次封装的想法.想不到太炫酷的名字,于是各取了两个单词的前两个字母-- pyse.   特点: 所有方法只提供xpath定位,web

自动化基础普及之selenium是啥?

Selenium 并不像QTP那样让人一下子就明白是什么?它是编程人员的最爱,但它却对测试新手产生了很大的阻碍.   Selenium 是啥? Selenium RC是啥? Webdriver 又是啥? RC 和 Webdriver 是啥关系? Webdriver 和编程语言啥关系? Selenium 能并行执行脚本嘛? Selenium 能做移动端自动化么?   这里虫师用简单方式,告诉你,他们错综复杂的关系.理顺了它们之间的关系才能真正使用它.     Selenium 是什么?   Sel