我正在尝试在具有数据提供程序的python中创建单元测试。由于unittest库不支持这种诞生,所以我使用了unittest_data_provider package。我遇到了一个错误,并且不确定它是从哪里来的(我是python的新手)。
我的密码
import unittest
from wikibase.dataModel.item_id import ItemId
from unittest_data_provider import data_provider
class TestItemId(unittest.TestCase):
itemIds = lambda: (
( 'q42' ),
( 'Q42' ),
( 'Q1' ),
( 'Q1000' ),
( 'Q31337' ),
)
@data_provider(itemIds)
def test_constructor(self, itemString):
itemId = ItemId(itemString)
self.assertEqual(itemId.getSerialization(), itemString)
我得到的错误:
这是使用python 3.3。
最佳答案
您的itemIds
函数应该返回一个元组的元组,但是按照您编写代码的方式,它返回的是字符串元组。您需要在括号内添加,
以返回单个项目元组,请尝试使用以下代码替换代码:
itemIds = lambda: (('q42',), ('Q42',), ('Q1', ), ('Q1000',), ('Q31337',),)
关于Python单元测试数据提供者,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18905637/