# Filter out builtin_function_type
getmethods = {k: v for k,v in mylib.MyClass.__swig_getmethods__.iteritems() if type(v) != types.BuiltinFunctionType}
# Filter out lambda functions (constructors)
getmethods = {k: v for k,v in getmethods.iteritems() if v.func_name != '<lambda>'}.keys()
nGetSuccess = 0
testMe = set()
m = mylib.MyClass()
for method in getmethods:
try:
value = eval('m.'+method)
nGetSuccess = nGetSuccess + 1
except Exception as e:
print(e.message)
self.assertEqual(nGetSuccess,len(getmethods))
我有很多情况,我使用SWIG生成的包装器对库进行单元测试,但我想您所要求的是对包装器本身进行单元测试。在
我测试包装器的方法如下:
属性:对于每一个公开了属性的类来说
MyClass
,我使用MyClass._swig_getmethods__
列出所有可以修改的属性。我确认有正确数量的属性可用,并且它们按预期工作静态方法
对于静态方法,我已经按名称建立了一个预期函数的列表,并在
mylib.__dict__
中搜索它们的存在并调用它们。对于一些方法,我使用了在这里找到的一个技巧,在Python中将C结构参数转换为字典,并公开了创建默认结构的可能性,该结构可用于测试。在相关问题 更多 >
编程相关推荐