gpt4 book ai didi

python - 使用 python unittest 抽象测试用例

转载 作者:IT老高 更新时间:2023-10-28 20:37:31 26 4
gpt4 key购买 nike

是否可以创建一个抽象的 TestCase,它会有一些 test_* 方法,但是这个 TestCase 不会被调用,这些方法只会在子类?我想我将在我的测试套件中拥有一个抽象的 TestCase ,并且它将为单个接口(interface)的几个不同实现进行子类化。这就是为什么所有的测试方法都是一些,只有一种,内部方法变化。我怎样才能优雅地做到这一点?

最佳答案

我不太明白你打算做什么——经验法则是“不要聪明地测试” -把它们放在那里,简单明了。

但是为了实现你想要的,如果你从 unittest.TestCase 继承,每当你调用 unittest.main() 你的“抽象”类都会被执行——我认为这是你想要避免的情况。

只需这样做:创建继承自“对象”而不是 TestCase 的“抽象”类。对于实际的“具体”实现,只需使用多重继承:继承自 unittest.TestCase 和抽象类。

import unittest

class Abstract(object):
def test_a(self):
print "Running for class", self.__class__

class Test(Abstract, unittest.TestCase):
pass

unittest.main()

update:颠倒了继承顺序 - 首先是 Abstract,这样它的定义就不会被 TestCase 默认值覆盖,正如注释中所指出的那样如下。

关于python - 使用 python unittest 抽象测试用例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4566910/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com