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类的方法,不能传一个函数名。
网友评论