是否有 pythonic 单元测试方法来断言函数已成功导入?
Is there a pythonic unit testing way to assert that a function has been imported successfully?
假设我们有以下简单的文件结构:
- 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.)
...但我很好奇是否有一种方法可以使用断言而不是 try-except 块来做到这一点。
非常全面地测试了模块本身的导入,但我实际上并没有在文件中看到任何关于函数的信息,除非我忽略了什么。
您可以使用多种方法:
- 只导入没有try-except的函数。如果它没有引发异常,则视为通过测试。但是,如果出现这种情况,则计为 错误 而不是 失败 。
- 将导入从
from some_file import foo
更改为 import some_file
并添加断言 assertTrue(hasattr(some_file, 'foo'))
。这样做的好处是您现在正在明确测试 some_file
中存在名为 foo
的东西,而不是您可以导入 some_file
.
假设我们有以下简单的文件结构:
- 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.)
...但我很好奇是否有一种方法可以使用断言而不是 try-except 块来做到这一点。
您可以使用多种方法:
- 只导入没有try-except的函数。如果它没有引发异常,则视为通过测试。但是,如果出现这种情况,则计为 错误 而不是 失败 。
- 将导入从
from some_file import foo
更改为import some_file
并添加断言assertTrue(hasattr(some_file, 'foo'))
。这样做的好处是您现在正在明确测试some_file
中存在名为foo
的东西,而不是您可以导入some_file
.