代码之家  ›  专栏  ›  技术社区  ›  Asa LeHolland

是否有一种pythonic单元测试方法来断言函数已成功导入?

  •  0
  • Asa LeHolland  · 技术社区  · 2 年前

    假设我们有以下简单的文件结构:

    - some_file.py
    - tests.py
    

    档案 some_file.py 应该包含函数 foo ,但如何使用 unittest 框架

    我可以看到在我的内心做着类似的事情 tests.py :

    try:
       from some_file import foo
    except ImportError as error:
       print('Error! Could not find foo.)
    

    ... 但我很好奇,是否有一种方法可以通过断言而不是尝试除块来实现这一点。

    This question 在模块本身上测试导入是非常全面的,但是我实际上没有看到文件中关于函数的任何内容,除非我忽略了一些东西。

    1 回复  |  直到 2 年前
        1
  •  1
  •   mkrieger1 djuarezg    2 年前

    您可以使用几种方法:

    • 只需导入函数而不必尝试。如果它没有引发异常,则视为通过了测试。然而,如果是这样的话,它将被视为 错误 而不是作为一个 失败 .
    • 将导入更改为 from some_file import foo import some_file 并添加一个断言 assertTrue(hasattr(some_file, 'foo')) 。这样做的好处是,您现在正在明确测试 foo 存在于 some_file 而不是你可以导入的 一些文件 .