相关疑难解决方法(0)

Django测试 - 在所有测试中修补对象

我需要MockMixin为我的测试创建一些.它应该包括调用外部源的所有内容的模拟.例如,每次我在管理面板中保存模型时,我都会调用一些远程URL.如果嘲笑并使用那样的话会很好:

class ExampleTestCase(MockedTestCase):
    # tests
Run Code Online (Sandbox Code Playgroud)

因此,每次我在管理员中保存模型时,例如在功能测试中,应用此模拟而不是调用远程URL.

这有可能吗?我能够为1个特定测试做到这一点,这不是问题.但是有一些全局模拟更有用,因为我经常使用它.

python django unit-testing django-testing python-mock

25
推荐指数
3
解决办法
1万
查看次数

Python mock:用于继承的模拟基类

我正在测试一个继承自另一个非常复杂的类,使用DB连接方法和一堆依赖.我想模拟它的基类,以便我可以很好地使用子类中定义的方法,但是在我从一个模拟类继承的那一刻,对象本身变成了一个模拟并丢失了它的所有方法.

我怎么能模拟一个超类呢?

或多或少的情况可归纳为:

import mock

ClassMock = mock.MagicMock()

class RealClass(ClassMock):

    def lol(self):
        print 'lol'

real = RealClass()
real.lol()  # Does not print lol, but returns another mock

print real # prints <MagicMock id='...'>
Run Code Online (Sandbox Code Playgroud)

这是一个简化的案例.实际发生的是RealClass扩展AnotherClass,但我设法拦截AnotherClass并用模拟替换它.

python inheritance unit-testing mocking

10
推荐指数
2
解决办法
8240
查看次数