资产加薪不会发现错误

2024-10-01 19:27:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这个剧本

import unittest,itertools,random

##testclass
class Testcomb(unittest.TestCase):

     def test_input(self):
        self.assertRaises(TypeError,calculate_combinations,dict(comb1), 5)

def calculate_combinations(combin,target):
    counter = 0
    for L in range(0, len(combin)+1):
      for subset in itertools.combinations(combin, L):
        if sum(subset) == target: counter= counter+1
    return counter

comb1=[1,2,3,4]


if __name__=='__main__': unittest.main()

但是self.assertRaises(TypeError,calculate_combinations,dict(comb1), 5)没有截获异常,并给出以下错误:

^{pr2}$

有人能帮忙吗?在


Tags: inselftargetfordefcounterunittestdict
1条回答
网友
1楼 · 发布于 2024-10-01 19:27:14

导致测试失败的异常是由断言的dict(comb1)部分触发的。在

>>> comb1=[1,2,3,4]
>>> dict(comb1)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: cannot convert dictionary update sequence element #0 to a sequence

相反,assertRaises将返回{},前提是它是可调用的(在您的例子中是calculate_combinations)来触发它。在

啊!在

相关问题 更多 >

    热门问题