KentBeckの著書TestDrivenDevelopment Chapter 18の次のPythonコードについて考えてみます。ここでは、彼が単体テストのフレームワークを構築しています。
class TestCaseTest(TestCase):
def testRunning(self):
test= WasRun("testMethod")
assert(not test.wasRun)
test.run() // Here run() is called once
assert(test.wasRun)
TestCaseTest("testRunning").run()//Here run() is called again
基本クラスの実装はTestCase
次のようになります。
TestCase
def __init__(self, name):
self.name= name
def run(self):
method = getattr(self, self.name)
method()
run()
上記のコードスニペットでメソッドが2回呼び出されるのはなぜですか?- そして、誰がいつメソッドを呼び出してい
testRunning()
ますか?ここではメソッドを定義しているだけですが、誰もこのメソッドを呼び出していないようです。
PS:私はJavaのバックグラウンドを持っており、Python構文自体にはあまり詳しくありません。