栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Python单元测试中多行字符串的比较

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python单元测试中多行字符串的比较

对Python源代码的一点点挖掘表明,

TestCase
注册了许多方法来测试不同类型的相等性。

self.addTypeEqualityFunc(dict, 'assertDictEqual')self.addTypeEqualityFunc(list, 'assertListEqual')self.addTypeEqualityFunc(tuple, 'assertTupleEqual')self.addTypeEqualityFunc(set, 'assertSetEqual')self.addTypeEqualityFunc(frozenset, 'assertSetEqual')try:    self.addTypeEqualityFunc(unipre, 'assertMultiLineEqual')except NameError:    # No unipre support in this build    pass

您可以看到

unipre
已注册使用
assertMultiLineEqual()
,但未
str
注册任何特殊功能。我不知道为什么会
str
被遗漏,但是到目前为止,我对以下两种方法中的任何一种都感到满意。

直接致电

如果

assertMultiLineEqual()
默认未注册使用8位字符串,则仍然可以直接调用它。

def testString(self):    a = 'xaxnzzz'    b = 'xbxnzzz'    self.assertMultiLineEqual(a, b)

寄存器字符串类型

您也可以自己注册。只需在测试用例的

setUp()
方法中添加一行即可。只需执行一次,您的所有测试方法都将使用正确的方法测试相等性。如果您的项目在所有测试用例中都有一个通用的基类,那将是放置它的好地方。

class TestAssertEqual(unittest.TestCase):    def setUp(self):        super(TestAssertEqual, self).setUp()        self.addTypeEqualityFunc(str, self.assertMultiLineEqual)    def testString(self):        a = 'xaxnzzz'        b = 'xbxnzzz'        self.assertEqual(a, b)    def testUnipre(self):        a = u'xaxnzzz'        b = u'xbxnzzz'        self.assertEqual(a, b)

这些方法中的任何一种都将在字符串比较失败时突出显示。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/402148.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号