如何判断Python中是否调用了函数?
我是第一次写单元测试,我很难理解这一点。我有一个方法IsInitialized(),如果另一个方法LoadTable()从未为该对象调用过,则该方法应返回false。如何编写测试方法来验证这一点?您可以在要检查的函数中使用如何判断Python中是否调用了函数?,python,testing,Python,Testing,我是第一次写单元测试,我很难理解这一点。我有一个方法IsInitialized(),如果另一个方法LoadTable()从未为该对象调用过,则该方法应返回false。如何编写测试方法来验证这一点?您可以在要检查的函数中使用全局变量并将其设置为真: global hasRun hasRun = False def foo(): global hasRun hasRun = True def goop(): global hasRun if hasRun == Fa
全局
变量并将其设置为真
:
global hasRun
hasRun = False
def foo():
global hasRun
hasRun = True
def goop():
global hasRun
if hasRun == False:
#Do something if it hasn't run
在代码中:
global hasRun
hasRun = False
def LoadTable():
global hasRun
doStuff()
hasRun = True
def IsInitialized():
global hasRun
return hasRun #Returns False if hasRun = False, and vice-versa
您可以在要检查的函数中使用
全局
变量并将其设置为True
:
global hasRun
hasRun = False
def foo():
global hasRun
hasRun = True
def goop():
global hasRun
if hasRun == False:
#Do something if it hasn't run
在代码中:
global hasRun
hasRun = False
def LoadTable():
global hasRun
doStuff()
hasRun = True
def IsInitialized():
global hasRun
return hasRun #Returns False if hasRun = False, and vice-versa
您需要检查对象是否相等,并使用标志指示结果 e、 g
您需要检查对象是否相等,并使用标志指示结果 e、 g
为了简单起见,我会将其作为一个属性:
class with_called_attribute:
def __init__(self, func):
self.func = func
self.called = False
def __call__(self, *args, **kwargs):
self.called = True
self.func(*args, **kwargs)
@with_called_attribute
def run_some_thing(*args, **kwargs):
print("You called with:", *args, **kwargs)
run_some_thing.called
#>>> False
run_some_thing(10)
#>>> You called with: 10
run_some_thing.called
#>>> True
为了简单起见,我会将其作为一个属性:
class with_called_attribute:
def __init__(self, func):
self.func = func
self.called = False
def __call__(self, *args, **kwargs):
self.called = True
self.func(*args, **kwargs)
@with_called_attribute
def run_some_thing(*args, **kwargs):
print("You called with:", *args, **kwargs)
run_some_thing.called
#>>> False
run_some_thing(10)
#>>> You called with: 10
run_some_thing.called
#>>> True
没有变量(bool)?设置标志变量以记录案例。没有变量(bool)?设置标志变量以记录案例。