学习TDD同时学到Python
TDD用了xUnit的实现来举例,也同时让我感受了下动态语言(乐观语言)的魅力,仅仅帖点代码来:
![]() class TestCase:
class TestCase:
![]() def __init__(self,name):
    def __init__(self,name):
![]() self.name = name
        self.name = name
![]() def setUp(pass):
    def setUp(pass):
![]() pass
        pass
![]() def tearDown(self):
    def tearDown(self):
![]() pass
        pass
![]() def run(self,result):
    def run(self,result):
![]() result.testStart()
        result.testStart()
![]() self.setUp()
        self.setUp()
![]() method = getattr(self,self.name)
        method = getattr(self,self.name)
![]() method()
        method()
![]() self.tearDown
        self.tearDown
![]()
![]() 
        
![]() class WasRun(TestCase):
class WasRun(TestCase):
![]() def __init__(self,name):
    def __init__(self,name):
![]() self.wasRun = None
        self.wasRun = None
![]() TestCase.__init__(self,name)
        TestCase.__init__(self,name)
![]() def run(self):
    def run(self):
![]() self.testMethod()
        self.testMethod()
![]() def testMethod(self):
    def testMethod(self):
![]() self.setUp()
        self.setUp()
![]() self.wasRun = 1
        self.wasRun = 1
![]() def setUp(self):
    def setUp(self):
![]() self.wasRun = None
                self.wasRun = None
![]() self.wasSetup=1
        self.wasSetup=1
![]()
![]() class TestCaseTest(TestCase):
class TestCaseTest(TestCase):
![]() def testRunning(self):
    def testRunning(self):
![]() test1 = WasRun("testMethod")
        test1 = WasRun("testMethod")
![]() test2 = WasRun("setUp")
                test2 = WasRun("setUp")
![]() print test2.wasSetUp
                print test2.wasSetUp
![]() assert(test.wasSetUp)
        assert(test.wasSetUp)
![]() assert(not test.wasRun)
        assert(not test.wasRun)
![]() test.setUp()
        test.setUp()
![]() test.run()
        test.run()
![]() print test2.wasSetUp
        print test2.wasSetUp
![]() assert(test.wasRun)
        assert(test.wasRun)
![]() TestCaseTest("testRunning").run()
    TestCaseTest("testRunning").run()
![]()
![]() 
![]() >>> class A:
>>> class A:
![]() def __init__(self):
    def __init__(self):
![]() self.tests = []
        self.tests = []
![]() def add(self,test):
    def add(self,test):
![]() self.tests.append(test)
        self.tests.append(test)
![]()
![]() 
    
![]() >>> class test:
>>> class test:
![]() def __init__(self,name):
    def __init__(self,name):
![]() self.name = name
        self.name = name
![]() def run(self):
    def run(self):
![]() print self.name
        print self.name
![]()
![]() 
        
![]() >>> class MainClass:
>>> class MainClass:
![]() def __init__(self):
    def __init__(self):
![]() pass
        pass
![]() def runTest(self):
    def runTest(self):
![]() t = test("chenfei")
        t = test("chenfei")
![]() t1 = test("lfchen")
        t1 = test("lfchen")
![]() t2 = test("qixiang")
        t2 = test("qixiang")
![]() t3 = test("zhao")
        t3 = test("zhao")
![]() a = A()
        a = A()
![]() a.add(t)
        a.add(t)
![]() a.add(t1)
        a.add(t1)
![]() a.add(t2)
        a.add(t2)
![]() a.add(t3)
        a.add(t3)
![]() for tt in a.tests:
        for tt in a.tests:
![]() tt.run()
            tt.run()
![]()
![]() 
            
![]() >>> MainClass().runTest()
>>> MainClass().runTest()
感觉还真不错!
 class TestCase:
class TestCase: def __init__(self,name):
    def __init__(self,name): self.name = name
        self.name = name def setUp(pass):
    def setUp(pass): pass
        pass def tearDown(self):
    def tearDown(self): pass
        pass def run(self,result):
    def run(self,result): result.testStart()
        result.testStart() self.setUp()
        self.setUp() method = getattr(self,self.name)
        method = getattr(self,self.name) method()
        method() self.tearDown
        self.tearDown
 
         class WasRun(TestCase):
class WasRun(TestCase): def __init__(self,name):
    def __init__(self,name): self.wasRun = None
        self.wasRun = None TestCase.__init__(self,name)
        TestCase.__init__(self,name) def run(self):
    def run(self): self.testMethod()
        self.testMethod() def testMethod(self):
    def testMethod(self): self.setUp()
        self.setUp() self.wasRun = 1
        self.wasRun = 1 def setUp(self):
    def setUp(self): self.wasRun = None
                self.wasRun = None self.wasSetup=1
        self.wasSetup=1
 class TestCaseTest(TestCase):
class TestCaseTest(TestCase): def testRunning(self):
    def testRunning(self): test1 = WasRun("testMethod")
        test1 = WasRun("testMethod") test2 = WasRun("setUp")
                test2 = WasRun("setUp") print test2.wasSetUp
                print test2.wasSetUp assert(test.wasSetUp)
        assert(test.wasSetUp) assert(not test.wasRun)
        assert(not test.wasRun) test.setUp()
        test.setUp() test.run()
        test.run() print test2.wasSetUp
        print test2.wasSetUp assert(test.wasRun)
        assert(test.wasRun) TestCaseTest("testRunning").run()
    TestCaseTest("testRunning").run()

 >>> class A:
>>> class A: def __init__(self):
    def __init__(self): self.tests = []
        self.tests = [] def add(self,test):
    def add(self,test): self.tests.append(test)
        self.tests.append(test)
 
     >>> class test:
>>> class test: def __init__(self,name):
    def __init__(self,name): self.name = name
        self.name = name def run(self):
    def run(self): print self.name
        print self.name
 
         >>> class MainClass:
>>> class MainClass: def __init__(self):
    def __init__(self): pass
        pass def runTest(self):
    def runTest(self): t = test("chenfei")
        t = test("chenfei") t1 = test("lfchen")
        t1 = test("lfchen") t2 = test("qixiang")
        t2 = test("qixiang") t3 = test("zhao")
        t3 = test("zhao") a = A()
        a = A() a.add(t)
        a.add(t) a.add(t1)
        a.add(t1) a.add(t2)
        a.add(t2) a.add(t3)
        a.add(t3) for tt in a.tests:
        for tt in a.tests: tt.run()
            tt.run()
 
             >>> MainClass().runTest()
>>> MainClass().runTest()感觉还真不错!
posted on 2006-09-10 21:10 flyingchen 阅读(570) 评论(0) 收藏 举报
 
                    
                 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号