【发布时间】:2016-10-21 07:50:12
【问题描述】:
根据工作环境中 pandas 包的可用性,方法返回两个不同的输出:
-
pandas.DataFrame如果 pandas 可用 - 否则为
numpy.recarray对象。
我应该如何为这个类编写单元测试?
我能想到的一个解决方案是为两种情况(安装和不安装 pandas)编写测试并相应地跳过测试,如下所示:
try:
import pandas
HAVE_PANDAS = True
except ImportError:
HAVE_PANDAS = False
import unittest
class TestClass(unittest.TestCase):
@unittest.skipUnless(HAVE_PANDAS, "requires pandas")
def tests_using_pandas(self):
# do something
@unittest.skipUnless(not HAVE_PANDAS, "doesn't require pandas")
def tests_without_pandas(self):
# do something
但由于测试覆盖率降低和跳过测试,我不太喜欢这种解决方案。我想为这两种情况运行我的测试。如果有人可以为此提出更好的替代解决方案,那将会很有帮助。
【问题讨论】: