代码之家  ›  专栏  ›  技术社区  ›  BCS

如何在Python中模拟一个自由函数?

  •  8
  • BCS  · 技术社区  · 14 年前

    我有一个python程序,它有一个很难测试的全局函数(它需要一个大的数据集才能正常工作)。 在测试调用它的函数时,最好的方法是什么?

    我发现下面的方法有效(但是使用它会让我感觉很不舒服)。

    模块FO:

    def PainLiesHere():
      return 4; #guaranteed to be random
    

    模块测试

    import foo
    
    def BlissLiesHere():
      return 5
    
    foo.PainLiesHere = BlissLiesHere
    
    # test stuff
    
    1 回复  |  直到 14 年前
        1
  •  8
  •   CrashCodes    14 年前

    这是一个非常好的方法。只要你知道 BlissLiesHere 不会改变正在测试的单元的整体行为…

    编辑:

    这就是正在做的,在他们提供的所有好的附加条件下,通过不同类型的模拟库,例如 Mock , Mox 等。