如何在python中通过单元测试为init函数编写测试用例?
我是Python新手。我有一个如何在python中通过单元测试为init函数编写测试用例?,python,python-unittest,Python,Python Unittest,我是Python新手。我有一个\uuuu init\uuuu函数,其中包含有关数据接收器配置的信息,我必须为此编写一些测试用例。但是init是一个不返回任何结果的函数,这让我很困惑。你能告诉我一些实现测试用例的方法吗?多谢各位 我的职能: class DataSinkConfig(): DEFAULT_ENTRIES_TABLE = 'entries' DEFAULT_OUTLIERS_TABLE = 'outliers' DEFAULT_OUTLIERCAUSES_TA
\uuuu init\uuuu
函数,其中包含有关数据接收器配置的信息,我必须为此编写一些测试用例。但是init
是一个不返回任何结果的函数,这让我很困惑。你能告诉我一些实现测试用例的方法吗?多谢各位
我的职能:
class DataSinkConfig():
DEFAULT_ENTRIES_TABLE = 'entries'
DEFAULT_OUTLIERS_TABLE = 'outliers'
DEFAULT_OUTLIERCAUSES_TABLE = 'outlier_causes'
# Note
def __init__(self, dbconf):
insopt = dbconf.get('insopt')
if insopt is None:
self.entries_table_name = self.DEFAULT_ENTRIES_TABLE
self.outliers_table_name = self.DEFAULT_OUTLIERS_TABLE
self.outlier_causes_table_name = self.DEFAULT_OUTLIERCAUSES_TABLE
else:
try:
dict(insopt)
except Exception as e:
raise Exception(
"Invalid value {} for parameter 'insopt'.".format(insopt))
self.entries_table_name = self.__complement_item(insopt, 'entry_tbl', self.DEFAULT_ENTRIES_TABLE)
self.outliers_table_name = self.__complement_item(insopt, 'outlier_tbl', self.DEFAULT_OUTLIERS_TABLE)
self.outlier_causes_table_name = self.__complement_item(insopt, 'cause_tbl', self.DEFAULT_OUTLIERCAUSES_TABLE)
我的测试被卡住了:
import unittest
import DataSinkConfig, DataSourceConfig
class TestDataSink(unittest.TestCase):
def setUp(self):
#pass
if __name__ == "__main__":
unittest.main()
你可以做一些事情,比如检查对象的状态。 显然,您可以将DataSink实例化移动到setUp方法
import unittest
import DataSinkConfig, DataSourceConfig
class TestDataSink(unittest.TestCase):
def setUp(self):
#pass
def test_data_sink(self):
dsc = DataSinkConfig(db_conf)
self.assertEqual(dsc.entries_table_name, "WHATREVER COMPLIMENT ITEM WAS SUPPOSE TO SET")
if __name__ == "__main__":
unittest.main()
\uuuu init\uuuu
在创建is后初始化对象,因此您必须在测试中检查对象状态。通常,任何不返回任何内容的方法只能通过其副作用(例如,对象状态的更改)进行测试,因此这不是\uuuuu init\uuuuuu
所特有的。