为什么运行测试用例要调用两次run()方法?

2024-05-16 23:32:58 发布

您现在位置:Python中文网/ 问答频道 /正文

考虑以下来自kentbeck的书Test Driven Development第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的实现如下所示:

^{pr2}$
  1. 为什么在上面的代码片段中,run()方法被调用了两次?在
  2. 谁在调用这个方法testRunning(),什么时候?这里只定义了方法,但似乎没有人调用这个方法。在

注:我有Java背景,对Python语法不太熟悉。在


Tags: 方法run代码testhereisasserttestcase
1条回答
网友
1楼 · 发布于 2024-05-16 23:32:58

我无法访问你所说的那本书,所以我把你发布的代码片段删掉。在

两个不同对象上的run()方法被称为TestCaseTest类的一个,WasRun类的一个(或者一个名为WasRun的函数返回的任何函数)。在

至于谁在调用testRunning(),则在TestCaseTest对象上调用.run(),这可能是一个来自超类TestCase的方法。在TestCase中查找run(),看看是否自我测试运行()在那里被调用。在

相关问题 更多 >