学习TDD同时学到Python
2006-09-10 21:10
204 查看
TDD用了xUnit的实现来举例,也同时让我感受了下动态语言(乐观语言)的魅力,仅仅帖点代码来:
class TestCase:
def __init__(self,name):
self.name = name
def setUp(pass):
pass
def tearDown(self):
pass
def run(self,result):
result.testStart()
self.setUp()
method = getattr(self,self.name)
method()
self.tearDown
class WasRun(TestCase):
def __init__(self,name):
self.wasRun = None
TestCase.__init__(self,name)
def run(self):
self.testMethod()
def testMethod(self):
self.setUp()
self.wasRun = 1
def setUp(self):
self.wasRun = None
self.wasSetup=1
class TestCaseTest(TestCase):
def testRunning(self):
test1 = WasRun("testMethod")
test2 = WasRun("setUp")
print test2.wasSetUp
assert(test.wasSetUp)
assert(not test.wasRun)
test.setUp()
test.run()
print test2.wasSetUp
assert(test.wasRun)
TestCaseTest("testRunning").run()
>>> class A:
def __init__(self):
self.tests = []
def add(self,test):
self.tests.append(test)
>>> class test:
def __init__(self,name):
self.name = name
def run(self):
print self.name
>>> class MainClass:
def __init__(self):
pass
def runTest(self):
t = test("chenfei")
t1 = test("lfchen")
t2 = test("qixiang")
t3 = test("zhao")
a = A()
a.add(t)
a.add(t1)
a.add(t2)
a.add(t3)
for tt in a.tests:
tt.run()
>>> MainClass().runTest()
感觉还真不错!
class TestCase:
def __init__(self,name):
self.name = name
def setUp(pass):
pass
def tearDown(self):
pass
def run(self,result):
result.testStart()
self.setUp()
method = getattr(self,self.name)
method()
self.tearDown
class WasRun(TestCase):
def __init__(self,name):
self.wasRun = None
TestCase.__init__(self,name)
def run(self):
self.testMethod()
def testMethod(self):
self.setUp()
self.wasRun = 1
def setUp(self):
self.wasRun = None
self.wasSetup=1
class TestCaseTest(TestCase):
def testRunning(self):
test1 = WasRun("testMethod")
test2 = WasRun("setUp")
print test2.wasSetUp
assert(test.wasSetUp)
assert(not test.wasRun)
test.setUp()
test.run()
print test2.wasSetUp
assert(test.wasRun)
TestCaseTest("testRunning").run()
>>> class A:
def __init__(self):
self.tests = []
def add(self,test):
self.tests.append(test)
>>> class test:
def __init__(self,name):
self.name = name
def run(self):
print self.name
>>> class MainClass:
def __init__(self):
pass
def runTest(self):
t = test("chenfei")
t1 = test("lfchen")
t2 = test("qixiang")
t3 = test("zhao")
a = A()
a.add(t)
a.add(t1)
a.add(t2)
a.add(t3)
for tt in a.tests:
tt.run()
>>> MainClass().runTest()
感觉还真不错!
相关文章推荐
- PYTHON TDD学习(一)-->Python 3.4版本环境安装Django及其启动
- python3.4学习笔记(十九) 同一台机器同时安装 python2.7 和 python3.4的解决方法
- 笨方法学习Python-习题22:到现在你学到了哪些东西?
- 【Python学习】同时安装了python2和python3,如何使用pip
- Learn Python The Hard Way学习(22) - 到现在我们已经学到了什么?
- Python学习笔记(4)--Matplotlib同时画柱状图与折线图
- Python开发学习笔记:Python多个变量同时赋值与多个变量分别单独赋值的不同
- 【学习日志】Python Web开发 TDD方法/“不测试常量”
- python 学习网站
- python OpenCV学习笔记(二十八):Hough圆变换
- Learn Python The Hard Way学习(39) - 可爱的字典
- Python学习笔记———《列表操作》
- python 学习笔记 四 条件, 循环以及其他
- Python黑帽子学习笔记-----第三章
- Python学习:Project interpreter not specified(eclipse+pydev)
- 多个版本的Python同时连接Oracle和安装cx_Oracle问题解决
- Python学习笔记——函数式编程
- Python基础学习:关键字raise
- python学习 05 函数switch功能
- python学习笔记 可变参数关键字参数**kw相关学习