python测试一个函数的简单介绍

python测试函数有哪些测试函数是用于自动化测试,使用python模块中的unittest中的工具来测试
附上书中摘抄来的代码:
#coding=utf-8import unittestfrom name_function import get_formatted_nameclass NamesTestCase(unittest.TestCase): def test_first_last_name(self):formatted_name=get_formatted_name('janis','joplin')self.assertEqual(formatted_name,'Janis Joplin') def test_first_last_middle_name(self):formatted_name=get_formatted_name('wolfgang','mozart','amadeus')self.assertEqual(formatted_name,'Wolfgang Amadeus Mozart')#注意下面这行代码,不写会报错哦~~~书中没有这行if __name__=="__main__": unittest.main()
python中怎么判断函数是否可以调用Python: 测试函数是否被调用
# helper class defined elsewhere
class CallLogger(object):
def __init__(self, meth):
self.meth = meth
self.was_called = False
def __call__(self, code=None):
self.meth()
self.was_called = True
然后assert CallLogger的was_called为True就行了 。但是这样的Callable不是个函数:
isinstance(object, types.FunctionType) # Callable will be False
对于这种Callable获取参数个数需要用:
inspect.getargspec(fn.__call__)
python判断是否为素数的函数?具体步骤如下:
1、打开pycharm , 点击file,点击new , 新建一个空白的pyrthon文件:
2、这里开始编写判断素数的代码 , 判断素数的上限最准确的应该使用平方根取整加一,此处用到两层循环,第一层遍历0到100的数,第二层循环判断满足条件的素数 。这里有一个else要注意是和for对齐而不是if对齐,如果和if对齐只要不能被2整除就会被添加到列表中了,而且会多次添加:
3、右键点击鼠标,点击“run demo” , 运行编写好的python文件,在下方的控制台就可以看见输出后结果:
用python单元测试怎么测一段代码单元测试是用来对一个模块、一个函数或者一个类来进行正确性检验的测试工作 。
比如对函数abs(),我们可以编写出以下几个测试用例:
输入正数,比如1、1.2、0.99,期待返回值与输入相同;
输入负数 , 比如-1、-1.2、-0.99,期待返回值与输入相反;
输入0,期待返回0;
输入非数值类型,比如None、[]、{},期待抛出TypeError 。
把上面的测试用例放到一个测试模块里 , 就是一个完整的单元测试 。
如果单元测试通过,说明我们测试的这个函数能够正常工作 。如果单元测试不通过,要么函数有bug,要么测试条件输入不正确 , 总之,需要修复使单元测试能够通过 。
单元测试通过后有什么意义呢?如果我们对abs()函数代码做了修改,只需要再跑一遍单元测试,如果通过,说明我们的修改不会对abs()函数原有的行为造成影响,如果测试不通过,说明我们的修改与原有行为不一致,要么修改代码 , 要么修改测试 。
这种以测试为驱动的开发模式最大的好处就是确保一个程序模块的行为符合我们设计的测试用例 。在将来修改的时候 , 可以极大程度地保证该模块行为仍然是正确的 。
我们来编写一个Dict类 , 这个类的行为和dict一致,但是可以通过属性来访问,用起来就像下面这样:
d = Dict(a=1, b=2)
d['a']
1
d.a
1
mydict.py代码如下:
class Dict(dict):
def __init__(self, **kw):
super(Dict, self).__init__(**kw)
def __getattr__(self, key):
try:
return self[key]
except KeyError:
raise AttributeError(r"'Dict' object has no attribute '%s'" % key)
def __setattr__(self, key, value):
self[key] = value
为了编写单元测试,我们需要引入Python自带的unittest模块 , 编写mydict_test.py如下:

推荐阅读