没有这样的测试方法/未绑定错误

时间:2012-10-28 09:52:16

标签: python unit-testing class-method

我已经覆盖了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()方法而不使其成为类方法(因为我不能改变它,因为它是外部的东西)?

1 个答案:

答案 0 :(得分:0)

似乎是一个黑客攻击,但它确实有效:

TestCase.__dict__['foo'](None)