首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在python中测试Pass语句

如何在python中测试Pass语句
EN

Stack Overflow用户
提问于 2015-09-22 09:37:42
回答 1查看 3K关注 0票数 2

我有相当复杂的python2.7系统。通常,在子类中,我需要用“pass”来覆盖父类的方法,比如:

代码语言:javascript
复制
class Parent():
    def some_method(self, data):
       # do something to data here
       ....

class Child(Parent):
   def some_method(self, data):
       # Do not touch data, it should remain unchanged
       pass

那么,我的问题是:是否有一种方法可以用'pass‘语句覆盖该方法?我指的是抽象测试,因为它不知道任何‘数据’:它所拥有的只是子类、方法名称,仅此而已。当然,我可以测试在运行some_method数据之后没有改变,但是考虑到系统的复杂性,有太多的地方可以检查某些东西是否受到了影响,所以我正在寻找一个抽象的解决方案。

UPD是的,我知道这个设计远非完美,但这是一个遗留的问题,所以请我们把系统设计的讨论放在一边,只需注意一点:不要像这样设计您的系统:)

EN

回答 1

Stack Overflow用户

发布于 2015-09-22 11:53:43

因此,到目前为止,我所做的解决方案是(不完全抽象,但对我的情况来说足够抽象):

在测试用例中,调用子类方法故意传递错误类型的值,就像我的示例中没有:

代码语言:javascript
复制
def test_method_pass_statement(self):
    test_class = Child()
    try:
        # If method isn't overridden, this should raise exception
        # but check for your case if None doesn't raise exception
        test_class.some_method(None)
    except <Exception_type>:
        # Customise error and message the way you want
        raise

如果该方法被pass覆盖,则如果参数数目正确,它将使用您传递它的任何内容。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32713480

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档