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

Pra*_*ani 8 python unit-testing mocking

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

class A:
  def f(self):
    a = 5000 * 10
    B().someFunction(a)
Run Code Online (Sandbox Code Playgroud)

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

Sam*_*ous 18

一个不返回任何东西、不修改任何东西并且不引发任何错误的函数是一个基本上没有理由的函数。

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

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


eli*_*ias 1

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