【问题标题】:Python test for missing static file缺少静态文件的 Python 测试
【发布时间】:2018-11-06 21:24:47
【问题描述】:

我有以下MWE(实际代码更大,但这是我要测试的部分):

def processFile():
  fileToProcess = "localFile.txt"
  try:
    with open(fileToProcess, "rb") as f:
      # Process file here
  except EnvironmentError:
    # Handle Exception

我的问题是: 如何测试上面的函数,以测试是否抛出异常。我对测试的理解(非常有限)是,在测试中调用函数并导致“失败”发生,同时断言。

def testProcessFile(self):
  self.assertRaises(???)

但是我怎样才能使文件的存在无效,而不实际删除它呢?谢谢!

【问题讨论】:

  • 如果函数已经处理了异常,调用者永远不会知道异常是否被引发(除非你重新引发或返回告诉你发生了什么的特定值)。
  • 好的,我期待这样的答案,谢谢!我只是不确定是否有办法从测试中操作实际函数中的变量(即变量“fileToProcess”)

标签: python unit-testing testing exception-handling


【解决方案1】:

只需将文件的路径更改为您知道该文件不存在的目录

def processFile():
  try:
    with open("fake_dir/localFile.txt", "rb") as f:
      # Process file here
  except EnvironmentError:
      # Handle Exception

【讨论】:

  • 对不起,我想不清楚,我想写一个测试函数来测试实际功能。我在问题中添加了这一点。
  • 然后可能会在函数中添加一个参数,表示文件的路径,默认值为'localFile.txt',这样函数调用不会改变,只有当你调用函数时你实际测试的参数。
猜你喜欢
  • 2016-01-31
  • 2021-02-21
  • 2011-10-30
  • 2019-06-13
  • 2020-11-18
  • 2020-11-19
  • 2017-10-24
  • 1970-01-01
  • 2013-05-13
相关资源
最近更新 更多