【问题标题】:Python: Modify SetUp based on TestCase in unittest.TestCasePython:根据unittest.TestCase中的TestCase修改SetUp
【发布时间】:2013-09-12 00:15:23
【问题描述】:

我希望每个测试用例在加载设置函数时都应该声明不同的“x”值。有没有办法可以在 setUp 函数中实现。示例代码如下所述。如何在下面的setUp函数中更改PSEUDO CODE

import random
import unittest

class TestSequenceFunctions(unittest.TestCase):

    def setUp(self):

        # ***PSEUDO CODE***
        x = 10 # if test_shuffle uses setUp()
        x = 20 # if test_choice uses setUp()
        x = 30 # if test_sample uses setUp()
        # ***PSEUDO CODE***

    def test_shuffle(self):
        #test_shuffle

    def test_choice(self):
        #test_choice

    def test_sample(self):
        #test_choice

if __name__ == '__main__':
    unittest.main()

我可以通过在不同的文件中编写每个测试用例来实现,但我会大大增加文件的数量。

【问题讨论】:

  • 您能举出更具体的例子吗?描述似乎很模糊。

标签: python unit-testing python-2.7 testcase


【解决方案1】:

一个单元测试文件以主题方式捕获所有涵盖相似功能的测试。该设置用于使该功能进入可测试状态。

将 X 的赋值移动到实际的测试方法中(如果您希望每个测试实际上都有一个 X,则在设置中保持 X = 0)。在阅读测试时,它可以更清楚地了解正在发生的事情以及测试的方式。您不应该有影响测试如何在 setup 函数中工作的条件逻辑,因为您将复杂性引入测试的先决条件,这意味着您有更大的错误表面积。

【讨论】:

    【解决方案2】:

    也许我没有抓住重点,但你的伪代码中的赋值可以移动到相应测试的开头。如果“分配”更复杂,或者跨越多个测试,那么只需在测试用例之外但在文件内部创建函数,并且相应的测试会调用应该是其“设置”一部分的任何函数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-09
      • 1970-01-01
      • 1970-01-01
      • 2017-10-04
      • 1970-01-01
      • 2017-09-21
      • 2018-08-02
      • 2017-01-08
      相关资源
      最近更新 更多