欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python-unittest,使用断言进行代码自测

程序员文章站 2022-07-12 12:08:49
...

1.assertEqual和assertNOEqual

import unittest
from test.equation import oneEquation, twoEquation, test1, test2, aa, test3

class TestFkMath(unittest.TestCase):  # 继承unittest.TestCase类
    def testAssertEqual(self):
        self.assertEqual(oneEquation(2, 6), -3, msg='结果不一致')
        # oneEquation(2, 6)是需要测试的函数,-3是自己预期的结果,如果测试结果和自己的预期不一致则会提示‘结果不一致’
        '''
            assertEqual(参数1,参数2,mag='测试不通过时的描'),参数1和参数2值相等,则测试用过
            assertNOEqual(参数1,参数2,mag='测试不通过时的描') 参数1和参数2值不相等,则测试用过
        '''

2.assertTrue和assertFalse

    def testAssertTrue(self):
        self.assertTrue(oneEquation(2, 6) == -3, msg='执行结果不为True')
        '''
             assertTrue(参数1,mag='测试不通过时的描'),  参数1是True通过测试
             assertFalse(参数1,mag='测试不通过时的描'), 参数1是False通过测试
        '''

3.assertIs和assertNotIs

    def testAssertIs(self):
        t = '1da'
        self.assertIs(test1(), t, msg='对象不一致')
        '''
            assertIs(参数1,参数2,msg='测试不通过时的描述')   id地址一样则测试通过
            assertNotIs(参数1,参数2,msg='测试不通过时的描述') id地址不一样则测试通过
                为什么使用元组作为test1()返回值的时候assertIs测试是通不过的,有没有大神指教, 
                test1()不在当前文件,如果在同一文件就能通过,字符串和数字不管是否在同一文件都能通过。
                数字和字符串是不是有一个类似公共池的东西,而元组没有这个东西,
        '''

4.assertIsNone和assertIsNotNone

    def testAssertIsNone(self):
        self.assertIsNone(None, msg='对象不为None')
        '''
            assertIsNone(参数,msg='测试不通过时的描述')    参数为None是测试通过
            assertIsNotNone(参数,msg='测试不通过时的描述') 参数不为None时测试通过
        '''

5.assertIsInstance

    def testAssertIsInstance(self):
        self.assertIsInstance(aa(),aa,msg='参数一不是参数二的实例')
        '''
            assertIsInstance(参数1,参数2,msg='测试不通过时的描述')  参数一是参数二的实例测试通过
            assertNotIsInstance(参数1,参数2,msg='测试不通过时的描述')  参数一不是参数二的实例测试通过
        '''
6.assertRaises
     def testAssertRaises(self):
         self.assertRaises(ZeroDivisionError, test3, 3, 0)
         # 判断以3,0作为test3的两个参数会出现ZeroDivisionError异常,如果没有异常则不会继续往下执行
         with self.assertRaises(ZeroDivisionError):  # 判断他下面的代码会有异常出现,如果没有异常则不会继续往下执行
            2/0
         with self.assertRaises(ValueError):  # 判断他下面的代码会有ValueError出现
            twoEquation(9, 4, 3)

7.

    def testAssertCountEqual(self):
        r1, r2 = twoEquation(1, -3, 2)
        t = [r1, r2]  # [2.0,1.0]
        self.assertCountEqual(t, (1.0, 2.0), "求解出错")
        # 并没有出现异常,说明只判断列元素是否一致,并不需要数据类型也一样t是列表,(1.0, 2.0)是元组,对元素的位置也没有要求

8.使用 if__name__== "__main__":运行程序

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

我的学习代码,已经上传了,有兴趣的可以下载看下  学习代码

相关标签: 个人博客