第十六章:开发工具-unittest:自动测试框架-容器

16.3.7 容器
除了通用的assertEqual()和assertNotEqual()方法,还有一些特殊方法可以用来比较如list,dict和set对象等的容器。

import textwrap
import unittest

class CintainerEqualityTest(unittest.TestCase):

    def testCount(self):
        self.assertCountEqual(
            [1,2,3,2],
            [1,3,2,3],
            )

    def testDict(self):
        self.assertDictEqual(
            {'a':1,'b':2},
            {'a':1,'b':3},
            )

    def testList(self):
        self.assertListEqual(
            [1,2,3],
            [1,3,2],
            )

    def testMultiLineString(self):
        self.assertMultiLineEqual(
            textwrap.dedent("""
            This string
            has more than one
            line.
            """),
            textwrap.dedent("""
            This string has
            more than two
            lines.
            """),
            )

    def testSequence(self):
        self.assertSequenceEqual(
            [1,2,3],
            [1,3,2],
            )

    def testSet(self):
        self.assertSetEqual(
            set([1,2,3]),
            set([1,3,2,4]),
            )

    def testTuple(self):
        self.assertTupleEqual(
            (1,'a'),
            (1,'b'),
            )

这些方法分别使用对应输入类型的格式来报告是否不相等,以便更容易地理解和修正测试失败。
在这里插入图片描述
可以使用assertIn()来测试容器的成员关系。

import unittest


class ContainerMembershipTest(unittest.TestCase):

    def testDict(self):
        self.assertIn(4,{1:'a',2:'b',3:'c'})

    def testList(self):
        self.assertIn(4,[1,2,3])

    def testSet(self):
        self.assertIn(4,set([1,2,3]))

支持in操作符或容器API的所有对象都可以使用assertIn()来测试。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值