如何为所有测试返回变量以使用Unittest

时间:2010-05-26 12:48:00

标签: python unit-testing inheritance

我有一个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。请忽略奇怪的测试。目前错误处理存在问题。

1 个答案:

答案 0 :(得分:1)

我很难理解你的代码,所以让我们找出一些我理解的内容(因为看起来你可能认为事情与它们的不同)。

电话

self.errorHandle()  
重复执行的

作为无操作:errorHandle方法只执行return,调用者忽略返回的值,因此,net,“没有任何反应”,你可能会完全避免调用该方法。当你调用一个只返回一些东西并忽略返回值的方法时,你期望发生什么?

不知道你在哪里获得someArg值 - 我看到它在两种方法中测试但从未设置过。这可能在某种程度上意味着伪代码......?

不确定def function(self)(即result function...)的语法应该传达什么 - 它应该是某种伪代码,我敢肯定,但究竟是什么?

如果您能澄清这些要点 - 尤其是第一个关于errorHandle方法及其调用的要点 - 也许我们会更容易提供帮助。