我已经覆盖了unittest.TestCase类,以包含一些其他功能,比如这个
class TestCase(unittest.TestCase):
def foo(self):
return 4711
我将在setUpClass
调用此类测试用例中使用
class MyTest(TestCase):
@classmethod
def setUpClass(cls):
value = cls.foo() #1
value = MyTest.foo() #2
value = MyTest().foo() #3
value = TestCase().foo() #4
我无法访问我在修改后的unitest类中实现的函数foo()
。
我可以看到try#2会失败,因为我尝试访问未实例化的类的方法,而foo不是classmethod。
我可以看到try#1也不起作用,因为我试图从classmethod级别(或者如何正确描述)访问非类方法。
但为什么尝试#3 /#4会给我no such test method
错误?
如何才能访问foo()
方法而不使其成为类方法(因为我不能改变它,因为它是外部的东西)?
答案 0 :(得分:0)
似乎是一个黑客攻击,但它确实有效:
TestCase.__dict__['foo'](None)