gpt4 book ai didi

具有多个子类的 Python 测试继承

转载 作者:太空宇宙 更新时间:2023-11-04 00:59:54 25 4
gpt4 key购买 nike

我想以一种允许我从单个 TestBaseClass 继承并多次子类化它的方式编写 Python 测试套件,每次更改其成员变量中的一些小细节。

类似于:

import unittest

class TestBaseClass(unittest.TestCase):

def setUp(self):
self.var1 = "exampleone"

class DetailedTestOne(TestBaseClass):
def setUp(self):
self.var2 = "exampletwo"

def runTest(self):
self.assertEqual(self.var1, "exampleone")
self.assertEqual(self.var2, "exampletwo")

class DetailedTestOneA(DetailedTestOne):
def setUp(self):
self.var3 = "examplethree"

def runTest(self):
self.assertEqual(self.var1, "exampleone")
self.assertEqual(self.var2, "exampletwo")
self.assertEqual(self.var3, "examplethree")

... continue to subclass at wish ...

本例中,DetailedTestOne继承自TestBaseClass,DetailedTestOneA继承自DetailedTestOne。

通过上面的代码,我得到:

AttributeError: 'DetailedTestOne' object has no attribute 'var1'

对于 DetailedTestOne 和:

AttributeError: 'DetailedTestOneA' object has no attribute 'var1'

对于 DetailedTestOneA

当然,var1、var2、var3 可以是在 TestBaseClass 中第一个实例中声明的同一变量的一些成员。

关于如何实现这种行为有什么想法吗?

最佳答案

您需要通过在您的 DetailedTestOne.setUp 方法中执行例如 super(DetailedTestOne, self).setUp() 来调用子类中的父类(super class)实现。

关于具有多个子类的 Python 测试继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33324050/

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