如何模拟修补类的每个方法

时间:2018-11-15 00:04:42

标签: python nose

我有一个Test类,其中包含多达50种不同的方法。我想用模拟功能修补每个方法。

prod = {"foo": "bar"}

def TestClass:
  @patch(db.get_product, return_value=prod)
  def test_1:
    pass
  @patch(db.get_product, return_value=prod)
  def test_2:
    pass
  .
  .
  .
  @patch(db.get_product, return_value=prod)
  def test_50:
    pass

有什么简单的方法可以代替重复@patch(db.get_product, return=prod) 50次吗?

1 个答案:

答案 0 :(得分:4)

您可以改为使用patch作为类装饰器:

@patch(db.get_product, return_value=prod)
class TestClass:
  def test_1:
    pass
  def test_2:
    pass
  .
  .
  .
  def test_50:
    pass

摘录自documentation

  

修补程序可以用作TestCase类装饰器。它的工作原理   装饰类中的每个测试方法。这减少了样板   测试方法共享通用补丁集时输入代码。