我有一个Python脚本,我正在尝试设置一个变量,这样如果第一个测试失败,那么其余部分将被设置为失败。我到目前为止的脚本是:
class Tests(unittest.TestCase):
def result(self):
....This function does something[ignore]......
someArg = 0
def testPass(self):
try:
self.result()
except suds.WebFault, e:
assert False
except Exception, e:
pass
finally:
if someArg == 0:
assert True
else:
global error
error = False
assert False
def testFail(self):
try:
self.result()
except suds.WebFault, e:
assert False
except Exception, e:
pass
finally:
if someArg == 0 or 'error' in globals():
assert False
else:
assert True
class Get(Tests):
def runTest(self):
self.testPass()
class GetFail(Tests):
def runTest(self):
self.errorHandle()
self.testFail()
if __name__ == '__main__':
unittest.main()
如果第一次测试失败,我试图将self.error设置为False。我知道它正在进行另一项测试,但我希望有人可以帮我找到解决这个问题的方法。
由于
PS。请忽略奇怪的测试。目前错误处理存在问题。
答案 0 :(得分:1)
我很难理解你的代码,所以让我们找出一些我理解的内容(因为看起来你可能认为事情与它们的不同)。
电话
self.errorHandle()
重复执行的作为无操作:errorHandle
方法只执行return
,调用者忽略返回的值,因此,net,“没有任何反应”,你可能会完全避免调用该方法。当你调用一个只返回一些东西并忽略返回值的方法时,你期望发生什么?
不知道你在哪里获得someArg
值 - 我看到它在两种方法中测试但从未设置过。这可能在某种程度上意味着伪代码......?
不确定def function(self)
(即result function...
)的语法应该传达什么 - 它应该是某种伪代码,我敢肯定,但究竟是什么?
如果您能澄清这些要点 - 尤其是第一个关于errorHandle
方法及其调用的要点 - 也许我们会更容易提供帮助。