如何在PyUnit框架中使用dict.items()生成多个函数调用?

时间:2011-03-14 08:05:02

标签: python unit-testing generator

所以,我正在尝试创建一个unittest.TestCase,它创建几个具有不同成员类型的不同数据库并验证数据的某些内容(对于此上下文并不重要)。我想使用生成器将全局字典中的必要信息传递给将负责对象创建和验证的函数。

目前,它只会设置Up,run和tearDown测试的第一个变体。如何生成几个不同的(即从dict等数据结构中变化的参数)调用my方法,该方法必须根据成员类型确定如何填充数据库?每个调用应作为单独的测试运行,并且每次都执行setUp和tearDown。测试用例正在Pydev GUI中使用PyUnit运行。

import sys, os, socket, shutil, unittest

# Global counter for test generation
testRun = 1

# test dictionary for generating multiple tests
basicMembers = {"Int" : 1}

# test operations to generate federations
def addItemAndGetSizeOf(basicMember, expectedValue, testFileName):
    print "foo %s %s %s" % (basicMember, expectedValue, testFileName) 

class BasicMembers(unittest.TestCase):
    testFileName = "bar" + str(testRun)

    def setUp(self):
        global testRun
        testRun += 1
        print testRun      

    def tearDown(self):
        pass

    def testBasicMembers(self):
        for basicMember, expectedValue in basicMembers.items():
            yield addItemAndGetSizeOf, basicMember, expectedValue, self.testFileName

if __name__ == "__main__":
    #import sys;sys.argv = ['', 'Test.testName']
    unittest.main()

0 个答案:

没有答案