如何对不返回任何内容的函数进行单元测试?

时间:2014-03-24 10:09:43

标签: python unit-testing mocking

是否可以通过模拟找到函数中局部变量的值?

class A:
  def f(self):
    a = 5000 * 10
    B().someFunction(a)

如何为此功能编写单元测试?我嘲笑someFunction,因为我不希望测试范围超出块。我可以测试函数其余部分的唯一方法是检查函数末尾变量a的值是否为50000。我该怎么做?

2 个答案:

答案 0 :(得分:2)

一个不返回任何东西的函数,不会修改任何东西,也不会引发任何错误,这个函数基本上没有理由。

  • 如果您的函数应该断言并引发错误, 给出错误的信息并检查它是否确实引起了错误。
  • 如果您的函数接受一个对象并对其进行修改,请测试是否为新对象 对象的状态符合预期。
  • 如果你的功能输出 一些东西到控制台,你可以暂时重定向 输入/输出流并测试写入/读取的内容。

如果不是上述内容,只需删除您的功能并忘记它:)

答案 1 :(得分:1)

通过交互测试,您可以检查调用someFunction的值。该函数内部发生的事情应该在该函数的单元测试中进行测试。