繁体   English   中英

如何在 python 中对 super() 调用进行单元测试

How to unit test a super() call in python

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我有以下混合:

class MixinToAddOnMyClass:
    def get_data(self, request):
        try:
            data = super().get_processed_data(request)
        except Exception:
            data = {'error': 'Invalid data request'}

我想测试这个 mixin class - 但是当我必须创建一个模拟 class 来继承它以便我可以测试super()调用时,我发现它不是那么干净。

对它进行单元测试的最佳方法是什么?

1 个回复

最终找到了一种方法来做到这一点。 似乎您可以模拟内置方法:

    @patch('<path_to_mixin_file>.super')
    def test_get_data_when_no_exception(self, super):
        super.get_processed_data.return_value = True
        self.assertTrue(MixinToAddOnMyClass.run_validation())
3 如何在余烬单元测试中模拟_super()方法

我正在编写路线的单元测试。 我有两个路由,一个是父级,另一个是子级,都包含model()function(hook)。 当我编写子路由测试用例时,通过this._super()。ie调用了父模型功能 有什么方法可以在单元测试中模拟此super(model function)来防止它。 ...

4 如何在python中使用super调用deepcopy?

我有2个类,我们将它们称为Class1和Class2(Class1),而Class2则是从Class1派生的。 在Class,copy.deepcopy工作得很好,我不希望落实的Class1的方法deepcopy的 。 现在,我有一个实例i2 = Class2(someParamet ...

5 如何在Python 3.0中调用super()?

我有一段时间以来在Python(3.0版)中看到的最奇怪的错误。 尽管函数不带任何参数,但更改函数的签名仍会影响super()是否起作用。 你能解释为什么会这样吗? 谢谢, 克里斯 ...

6 如何进行Python单元测试

我想进入python的单元测试,但在寻找解决以下问题的方法时遇到了麻烦( 源 )。 我们有两个函数,is_prime和print_next_prime。 如果我们想测试print_next_prime,则需要确保is_prime是正确的,asprint_next_prime会使用它。 ...

7 我应该如何测试超级(xy)通话?

我只想为这段代码编写一个单元测试: 一些限制: 我不能更改超类SomeClassICanNotChange 。 有必要调用super(param) 超类SomeClassICanNotChange使用param做一些事情,因此仅Mockito.mock(Some ...

10 如何对包含 Python 中的数据库调用的方法进行单元测试

我想对包含数据库(SQL Server)调用的方法进行单元测试。 我不希望测试连接到实际的数据库。 我使用 unittest 进行测试,我做了一些研究,似乎 Mocking 可以做到这一点,但不确定语法。 下面代码中的 select 语句返回一些整数。 我猜想 mocking 将针对代码的“curs ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM