Python3 unittest

2019-03-06  本文已影响0人  多问Why
import unittest

def mysum(arg):
    total = 0
    for val in arg:
        total += val
    return total


class TestSum(unittest.TestCase):
    def test_list_int(self):
        data = [1,2,3]
        result = mysum(data)
        self.assertEqual(result,6)

    def test_type_error(self):
        data = "abc"
        with self.assertRaises(TypeError):
            result = sum(data)

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

实际情况被测试的方法在一个文件中,测试类单独在一个文件中。

简单的mock测试

import unittest
from unittest.mock import patch
import math


class TestSum(unittest.TestCase):
    @patch('math.cos', return_value=6)
    def test_list_int(self,cos):
        data = [1,2,3]
        result = math.cos(data)
        self.assertEqual(result,6)

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

无论传入什么参数,math.cos()都返回6,注意只能patch类的方法,不能传一个函数名。

上一篇 下一篇

猜你喜欢

热点阅读