当前位置: 代码迷 >> 综合 >> python-unittest,使用断言进行代码自测
  详细解决方案

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

热度:34   发布时间:2023-11-11 03:40:27.0

1.assertEqual和assertNOEqual

import unittest
from test.equation import oneEquation, twoEquation, test1, test2, aa, test3class 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/0with 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()

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

  相关解决方案