我有几个测试用例类在我的Django应用程序。在其中的一些中,我用@ mock.patch来嘲笑一个调用外部资源的函数,这很好用。在我的测试套件的一个TestCase的,让我们叫它B(),依赖于外部资源,所以我不希望它嘲笑了,我不加装饰。它看起来像这样:Unmocking在Django单元中的嘲笑对象测试
@mock.patch("myapp.external_resource_function", new=mock.MagicMock)
class A(TestCase):
# tests here
class B(TestBase):
# tests here which depend on external_resource_function
当我独立地测试B时,事情按预期工作。然而,当我运行这两个测试一起,A先运行,但功能依然嘲笑出B.我怎么能unmock这一呼吁?我试过重新加载模块,但它没有帮助。
谢谢,开始和停止是我需要的! – velotron
如果一个测试需要一个模拟,另一个不需要?除了在每个单元测试中打补丁/开始/停止之外,没有其他方法可以做到这一点吗? – Ethereal