Fengdanyunqing

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

 

#encoding=utf-8
import unittest
from __builtin__ import str
import random

class MyClass(object):
    @classmethod
    def sum(cls,a,b):
        return a+b
    @classmethod
    def div(cls,a,b):
        return a/b
    @classmethod
    def return_None(cls):
        return None

class MyTestCase(unittest.TestCase):
    #验证a+b=sum
    def test_assertEqual(self):
        try:
            a,b = 1,2
            sum = 13
            self.assertEqual(a + b,sum,'断言失败,%s + %s != %s'%(a,b,sum))
        except AssertionError,e:
            print e
    #验证a-b!=res
    def test_assertNotEqual(self):
        try:
            a,b = 5,2
            res = 3
            self.assertNotEqual(a - b,res,'断言失败,%s - %s = %s'%(a,b,res))
        except AssertionError,e:
            print e
    #雅正a==b为真
    def test_assertTrue(self):
        try:
            a,b = 1,2
            self.assertTrue(a == b, '断言失败,%s != %s'%(a,b))
        except AssertionError,e:
            print e
    #验证a==b为假
    def test_assertFalse(self):
        try:
            a,b = 1,1
            self.assertFalse(a == b,'断言失败,%s == %s'%(a,b))
        except AssertionError,e:
            print e
    #验证a,b为同一对象
    def test_assertIs(self):
        try:
            a = 1
            b = 2
            self.assertIs(a,b,'断言失败,%s与%s不属于同一对象'%(a,b))
        except AssertionError,e:
            print e
    #验证a,b为不同对象
    def test_assertIsNot(self):
        try:
            a = 1
            b = a
            self.assertIsNot(a,b,'断言失败,%s与%s属于同一对象'%(a,b))
        except AssertionError,e:
            print e
    #判断表达式结果不为None
    def test_assertIsNotNone(self):
        try:
            result = MyClass.return_None()
            self.assertIsNotNone(result,'Is None')
        except AssertionError,e:
            print e
    #判断表达式结果为None
    def test_assertIsNone(self):
        try:
            result = MyClass.sum(1, 2)
            self.assertIsNone(result,'断言失败,Not is None')
        except AssertionError,e:
            print e
    #判断b in a
    def test_assertIn(self):
        try:
            a = 'this is a test'
            b = 'python'
            self.assertIn(b,a,'断言失败,%s not in %s'%(b,a))
        except AssertionError,e:
            print e
    #判断b not in a
    def test_assertNotIn(self):
        try:
            a = 'this is a test'
            b = 'is'
            self.assertNotIn(b,a,'断言失败,%s in %s'%(b,a))
        except AssertionError,e:
            print e
    #判断测试对象不为指定的类型
    def test_assertNotIsInstance(self):
        try:
            x = MyClass
            y = object
            self.assertNotIsInstance(x,y,'%s 的类型是 %s'%(x,y))
        except AssertionError,e:
            print e
    #判断测试对象为指定类型
    def test_assertIsInstance(self):
        try:
            a = 123
            b = str
            self.assertIsInstance(a,b,'断言失败,%s 的类型不是%s'%(a,b))
        except AssertionError,e:
            print e
            print 'a 的类型为',type(a)
    def test_assertRaise(self):
        #测试抛出指定的异常类型
        with self.assertRaises(ValueError) as cm:
            random.sample([1,2,3,4,5],'j')
        print "==",cm.exception
        try:
            self.assertRaises(ZeroDivisionError, MyClass.div,3,0)
        except AssertionError,e:
            print e
    #测试抛出的指定异常类型,并用正则表达式具体验证
    def test_assertRaiseRegexp(self):
        with self.assertRaisesRegexp(ValueError,'literal') as ar:
            int('xyz')
        print ar.exception
        print ar.expected_regexp
        
        try:
            self.assertRaisesRegexp(ValueError, "invalid literal for. *XYZ'$", int,'XYZ')
        except AssertionError,e:
            print e
if __name__ == "__main__":
    unittest.main()

 

posted on 2018-01-08 15:18  Fengdanyunqing  阅读(559)  评论(0编辑  收藏  举报