例如:以加减乘除法为例:

方法为:calculator.py

# 加减乘除算法


class Calculator:
    def __init__(self, x, y):
        self.x = int(x)
        self.y = int(y)


    # 加法
    def add(self):
        return self.x + self.y


    # 减法
    def sub(self):
        return self.x - self.y


    # 乘法
    def mul(self):
        return self.x * self.y


    # 除法
    def div(self):
        return self.x / self.y

编写测试用例为:test_calculator.py

from unittest1.calculator import Calculator


def test_add():
    c = Calculator(3, 5)
    result = c.add()
    assert result == 8, '加法运算失败!'


def test_sub():
    c = Calculator(7, 2)
    result = c.sub()
    assert result == 5, '减法运算失败!'


def test_mul():
    c = Calculator(5, 9)
    result = c.mul()
    assert result == 45, '乘法运算失败!'


def test_div():
    c = Calculator(9, 3)
    result = c.div()
    assert result == 3, '除法运算失败'


if __name__ == '__main__':
    test_add()
    test_sub()
    test_mul()
    test_div()

运行结果为:

局限性:当前面的测试函数运行失败后,后面的测试函数不再执行,导致执行结果无法统计

用unittest单元测试框架重新编写测试用例:

(1)创建一个测试类,必须继承unnittest模块的TestCase类

(2)创建一个测试方法,必须以"test"开头

(3)调用被测试类,传入初始化数据

(4)调用被测试方法,得到计算结果。用assertEqual()断言是否与预期结果相同。

(5)调用unnitest的main()执行测试用例

上面例子,用unnittest编写测试用例如下:

import unittest
from unittest1.calculator import Calculator


class TestCalculator(unittest.TestCase):

    def test_add(self):
        c = Calculator(3, 5)
        result = c.add()
        self.assertEqual(result, 8)

    def test_sub(self):
        c = Calculator(5, 6)
        result = c.sub()
        self.assertEqual(result, -1)

    def test_mul(self):
        c = Calculator(5, 6)
        result = c.mul()
        self.assertEqual(result, 30)

    def test_div(self):
        c = Calculator(9, 3)
        result = c.div()
        self.assertEqual(result,3)

if __name__ == '__main__':
        unittest.main()

运行结果 :

.:一条运行通过的测试用例

F:一条运行失败的测试用例

E:一条运行错误的测试用例

s:一条运行跳过的测试用例

01-16 16:09