zoukankan      html  css  js  c++  java
  • unittest断言方法的使用

    unittest框架的TestCase类提供以下方法用于测试结果的判断

    方法 检查 版本
    assertEqual(a, b) a ==b  
    assertNotEqual(a, b) a !=b  
    assertTrue(x) bool(x) is True  
    assertFalse(x) Bool(x) is False  
    assertIs(a, b) a is b 3.1
    assertIsNot(a, b) a is not b 3.1
    assertIsNone(x) x is None 3.1
    assertIsNotNone(x) x is not None 3.1
    assertIn(a, b) a in b 3.1
    assertNotIn(a, b) a not in b 3.1
    assertIsInstance(a, b) isinstance(a,b) 3.1
    assertNotIsInstance(a, b) not isinstance(a,b) 3.1

    -assertEqual(first,second,msg=None)

    断言第一个参数和第二个参数是否相等,如果不相等则测试失败

    -assertNotEqual(first,second,msg=None)

    assertNotEqueal()和assertEqual()相反,它用于第一个参数与第二个参数是否不相等,如果相等则测试失败

    -assertTrue(expr,msg=None)

    -assertFalse(expr,msg=None)

    测试表达式是true(或false)

    -assertIn(first,second,msg=None)

    -assertNotIn(first,second,msg=None)

    判断第一个参数是否在第二个参数中,反过来讲,第二个参数是否包含第一个参数

    -assertIs(first,second,msg=None)

    -assertIsNot(first,second,msg=None)

    断言第一个参数和第二个参数是否为同一个对象

    -assertIsNone(first,second,msg=None)

    -assertIsNotNone(first,second,msg=None)

    断言表达式是否为None对象

    -assertIsInstance(first,second,msg=None)

    -assertIsNotInstance(first,second,msg=None)

    断言obj是否为cls的一个实例


     unittest案例:

    calculate.py:

    class Math:
        def __init__(self,a,b):
            self.a = int(a)
            self.b = int(b)
    
        def add(self):
            return self.a + self.b

    test_Math.py:

    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.assertEquals(j.add(),15)
            # self.assertEquals(j.add(),12)
    
        def test_add1(self):
            j = Math(55,100)
            self.assertNotEqual(j.add(),145)
    
        def test_add2(self):
            j = Math(5,10)
            self.assertTrue(j.add() > 10)
    
        def assertIs_test(self):
            self.assertIs("abc","abc")
            # self.assertIs("ab","abc")
    
        def assertIn_test(self):
            self.assertIn("python","hello python")
            # self.assertIn("abc","hello python")
    
        def tearDown(self):
            print("test end")
    
    if __name__ == '__main__':
        # unittest.main()
        # 构造测试集
        suit = unittest.TestSuite()
        suit.addTest(TestMath("test_case"))
        # 执行测试
        runner = unittest.TextTestRunner()
        runner.run(suit)
  • 相关阅读:
    MySQL迁移升级解决方案
    Python json和simplejson的使用
    ASP.NET使用Memcached高缓存实例的初级介绍
    Spring Cloud Stream在同一通道根据消息内容分发不同的消费逻辑
    JS高级---函数的几个成员
    JS高级---bind方法的使用
    JS高级---bind方法
    JS高级---总结apply和call方法的使用
    JS高级---apply和call都可以改变this的指向
    JS高级---复习
  • 原文地址:https://www.cnblogs.com/NancyRM/p/8377721.html
Copyright © 2011-2022 走看看