如何测试抛出异常的类方法?

问题描述 投票:0回答:1

我面临着测试仅针对类方法抛出异常的问题:

import unittest
class AclassTest(unittest.TestCase):

  # 1st example:
  def test_m(self):
    self.assertRaises(NotImplementedError, Aclass.m_method, self)

  # 2nd example:
  @classmethod
  def test_d(self):
    self.assertRaises(NotImplementedError, Aclass.d_method)

第一个例子工作得很好,第二个例子没有。照原样,我的第二个示例失败并显示以下消息:

E     TypeError: assertRaises() arg 1 must be an exception type or tuple of exception types

我的班级

Aclass
有2种方法,
m_method
d_method
。唯一的区别是方法
d_method
是一个类方法。

我从我的测试中删除了

classmethod
装饰器,它会工作,但我不知道这是否是测试类方法的正确方法。

python python-unittest
1个回答
0
投票

这是语法:

    def test_m(self):
        self.assertRaises(NotImplementedError, Aclass.m_method, self)`

# TO BECOME 


    def test_m(self):
        with self.assertRaises(NotImplementedError):
            Aclass.m_method
© www.soinside.com 2019 - 2024. All rights reserved.