主流的大部分的测试框架貌似都不支持static method,貌似因为静态方法的代码有味道,所以官方故意不支持静态方法测试?il不知道
承认代码可能写的不够好,需要重构,但是测试也是需要的,所以仍然需要静态方法来做重构的保障。
在python中实现静态测试的思路如下:
假设有一个Util类,
class Util:
@classmethod
def tai_zi(a, b=''):
print '太子'
return '太子'
class View()
def view(self):
print Util.tai_zi(1, 'M')
困难在于,我们要测试这个View的view()方法,但是这个view()方法使用了一个关键的static方法,而且有时候这个static方法很难操控,或者执行时间慢,或者带来其他问题等,但是我们又需要测试view(),所以必须绕过去
class UtilTest(MockTestCase):
@classmethod
def mock_tai_zi(cls, *args, **kwargs):
print '狸猫'
return '狸猫'
def setUp(self):
pass
def tearDown(self):
pass
def mock_tai_zi(self):